php - Mysql_fetch_assoc() 使用 LIKE 对我的查询发出警告

标签 php mysql

得到这个错误 mysql_fetch_assoc() expects parameter 1 to be resource, boolean given 当我返回我的查询时

$query = mysql_query("SELECT * FROM tempusers
    WHERE 'firstname' LIKE '%$data%' 
    OR 'lastname' LIKE '%$data%'
    OR 'description' LIKE '%$data%'
    OR 'title' LIKE '%$data%'");

if (! $query){
    echo'Database error: ' . mysql_error();
}
while($row=mysql_fetch_assoc($query)){
    $description = $row['description'];
    echo $description;
}

特别是 while 循环。不明白为什么我得到。我认为这是因为我使用了 LIKE,我不确定我是否在查询中正确使用了 wildcard 的 %%。如果知道如何消除此错误以及为什么会发生,我将不胜感激

最佳答案

  • 使用CONCAT()函数
  • 在列名上使用反引号而不是单引号(但在这种情况下不需要,因为您的列名不是 reserved keyword 或者它不包含无效字符)<

查询,

SELECT * FROM tempusers
WHERE  `firstname` LIKE CONCAT('%', '$data', '%')
    OR `lastname` LIKE CONCAT('%', '$data', '%')
    OR `description` LIKE CONCAT('%', '$data', '%')
    OR `title` LIKE CONCAT('%', '$data', '%')

还有一件事,您的查询存在 SQL 注入(inject)漏洞,请花时间阅读下面的文章,

关于php - Mysql_fetch_assoc() 使用 LIKE 对我的查询发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13284133/

相关文章:

PHP如何发送USR1信号进行处理?

php - 带分页的 MySql 查询中的随机值

c# - 将列表放入 mysql 并在 c# 中接收

mysql - 如何在 SQL 中查找表中的总销售额?

php - 建立数据库连接时出错 - WP 主机更改了密码

php - 如何使用 MySQL 和 PHP 制作问卷的表结构?

mysql - 需要帮助从 MySQL 填充数据网格

PHP Openssl 解密 AES Mysql 加密

php - 在 Laravel 4 中自动加载 php 文件

python - Django session 中的当前字段值