可能重复:
mysql_fetch_array() expects parameter 1 to be resource, boolean given in select
好的,我有一段代码由于某种原因给我以下错误。
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
这是代码。
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM sitename WHERE id='$user_id'");
while($row = mysqli_fetch_array($dbc)){
$state = $row["state"];
$city = $row["city"];
$zip = $row["zip"];
$bio_body = $row["bio_body"];
}
如果你能给我正确的代码,请帮助我。
答案 0 :(得分:3)
你的mysqli_query返回false(一般意味着查询错误)。在执行mysqli_fetch_array之前检查mysql错误
答案 1 :(得分:1)
要考虑如何对错误采取措施,请查看mysqli error function。这段代码应该运行,并打印出错误,但这不是一个让系统最终离开的好方法(另见上面关于空白密码的评论)。
$mysqli = new mysqli("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT * FROM sitename WHERE id='$user_id'");
if (!$dbc) {
// There was an error...do something about it here...
print mysqli_error();
} else {
while($row = mysqli_fetch_array($dbc)){
$state = $row["state"];
$city = $row["city"];
$zip = $row["zip"];
$bio_body = $row["bio_body"];
}
}
最后要注意的是,如果您开始使用PHP和数据库,我强烈建议您查看PDO。它提供了旧的MySQL和MySQLi函数和对象中缺少的数据抽象级别。
答案 2 :(得分:0)
从我记得你正在使用新的mysqli
你应该使用$ mysqli-> query()和$ mysqli-> fetch_array()而不是传统的方法吗?
或者您可以删除新关键字并保持其他关键字
答案 3 :(得分:0)
您的代码是否实际致电SELECT * FROM sitename WHERE id='$user_id'
?
我认为表名是用户或成员或其他东西。