php - mysql_fetch_array()/mysql_fetch_assoc()/mysql_fetch_row()/mysql_num_rows 等...期望参数 1 是资源

标签 php mysql

我尝试从 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/40833409/

相关文章:

php - 无限图像上传到服务器和名称、类别等和多个图像路径(1 行)到数据库

php - 从 MySQL 时间戳获取时间并以小时、分钟等显示?

mysql - Google App Engine 和 Cloud sql 连接被拒绝

mysql - 如何从 MySQL 数据库实时更新 LibreOffice Calc 单元格?

php - 使用 PDO 从类中获取数组

php - PDO异常 : SQLSTATE 01002 Adaptive Server connection failed (severity 9)

php - 我想检查用户名在注册页面是否可用

php - 8 到 10 个字母单词的正则表达式

php - 在 php 和 mysql 中比较 DATETIME 与 time()

php - 当不应该通过 PHP MySQL/MySQLi 有两个(应该是)单独的连接时,GET_LOCK 会成功