mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]
Posted
技术标签:
【中文标题】mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]【英文标题】:mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in [duplicate] 【发布时间】:2013-03-04 14:39:55 【问题描述】:我在检查我的数据库中是否已经存在 Facebook User_id 时遇到了一些麻烦(如果不存在,它应该接受该用户作为新用户,否则只需加载画布应用程序)。我在托管服务器上运行它并没有问题,但在我的本地主机上它给了我以下错误:
mysqli_fetch_array() 期望参数 1 是 mysqli_result,布尔值在
这是我的代码:
<?
$fb_id = $user_profile['id'];
$locale = $user_profile['locale'];
if ($locale == "nl_NL")
// Checking User Data @ WT-Database
$check1_task = "SELECT * FROM `users` WHERE `fb_id` = " . $fb_id . " LIMIT 0, 30 ";
$check1_res = mysqli_query($con, $check1_task);
$checken2 = mysqli_fetch_array($check1_res);
print $checken2;
// If the user does not exist @ WT-Database -> insert
if (!($checken2))
$add = "INSERT INTO users (fb_id, full_name, first_name, last_name, email) VALUES ('$fb_id', '$full_name', '$first_name', '$last_name', '$email')";
mysqli_query($con, $add);
// Double-check, the user won't be able to load the app on failure inserting to the database
if (!($checken2))
echo "Excuse us " . $first_name . ". Something went terribly wrong! Please try again later!";
exit;
else
include ('sorrylocale.html');
exit;
我已经读到这与我的查询错误有关,但它已在我的托管服务提供商上运行,所以不可能!
【问题讨论】:
您需要为您的查询添加错误处理,这样您就可以准确地找出它失败的原因。您还有一个严重的 SQL 注入漏洞。 请,请使用mysqli
准备好的语句功能到properly escape your SQL queries。
【参考方案1】:
给mysqli_query()
的查询失败并返回false
。
把这个放在mysqli_query()
之后看看发生了什么。
if (!$check1_res)
printf("Error: %s\n", mysqli_error($con));
exit();
更多信息:
http://www.php.net/manual/en/mysqli.error.php
【讨论】:
我在哪里定义 $check1_res? 在 OP 示例中,$check1_res
是 mysqli_query()
调用的结果。以上是关于mysqli_fetch_array() 期望参数 1 为 mysqli_result,布尔值在 [重复]的主要内容,如果未能解决你的问题,请参考以下文章
警告问题:期望参数 1 为 mysqli_result [重复]
mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型。如何处理mysqli问题?
如何处理mysqli问题? mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型
如何处理mysqli问题? mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型
如何处理mysqli问题? mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型
如何处理mysqli问题? mysqli_fetch_array():参数 #1 必须是 mysqli_result 类型