我尝试从 MySQL 表中选择数据,但收到以下错误消息之一:
mysql_fetch_array() expects parameter 1 to be resource, boolean given
这是我的代码:
$username = $_POST['username'];
$password = $_POST['password'];
$result = mysql_query('SELECT * FROM Users WHERE UserName LIKE $username');
while($row = mysql_fetch_array($result)) {
echo $row['FirstName'];
}
最佳答案
查询可能会因各种原因而失败,在这种情况下,mysql_* 和 mysqli 扩展都将从各自的查询函数/方法中返回 false
。您需要测试该错误情况并进行相应处理。
<强> mysql_ extension :
NOTE The mysql_ functions are deprecated and have been removed in php version 7.
在将$result
传递给mysql_fetch_array
之前检查它。您会发现它是false
,因为查询失败。请参阅 [mysql_query
][1] 文档,了解可能的返回值以及如何处理它们的建议。
$username = mysql_real_escape_string($_POST['username']);
$password = $_POST['password'];
$result = mysql_query("SELECT * FROM Users WHERE UserName LIKE '$username'");
if($result === FALSE) {
trigger_error(mysql_error(), E_USER_ERROR);
}
while($row = mysql_fetch_array($result))
{
echo $row['FirstName'];
}
关于php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33845272/