php - MySQL SELECT 语句只搜索表中的 3 个字段

标签 php mysql sql select

我在使用表单中的用户输入搜索 MySQL 数据库表中的多个列时遇到问题。

数据库中的表称为车辆,有 4 个字段/列:年份、制造商、型号和选项

用户从我放入 $input 变量的表单中输入他们的搜索条件。

下面是我的代码,它不起作用。它返回一个 bool 错误:

(Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given)

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%' OR option LIKE '%$input%'");

$result = mysql_query($query);

然而,当我从查询中删除最后的 OR 时,它工作正常,但只搜索年份、品牌和型号字段:

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%'");

$result = mysql_query($query);

如何获取查询以搜索所有 4 个字段/列?我错过了什么?

是否有更简单的方法来搜索整个表格(表格中的所有列)以查找用户的输入?

非常感谢您能给我的任何帮助。

最佳答案

"option"是mysql的保留字,see here .因此,您的查询实际上失败并返回 bool 值 false 而不是资源。重命名该列或像这样在其周围使用 ``

$query = ("SELECT * FROM vehicles WHERE year LIKE '%$input%' OR make LIKE '%$input%' OR model LIKE '%$input%' OR `option` LIKE '%$input%'");

另外一定要使用适当的转义以安全对抗 SQL Injection .

关于php - MySQL SELECT 语句只搜索表中的 3 个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13441427/

相关文章:

mysql - 查找常见的匹配 ID

mysql - group by 和 group concat ,不使用主 pk 优化 mysql 查询

java - 将 jtextfield 的值插入数据库,

sql - 用于运行 SQL 查询并将结果返回给变量的 Bash 脚本

mysql - 在 phpMyAdmin 中导入文本文件

sql - 如何只选择不在另一个表中的行而不获取另一个表的数据 - PLSQL

php - 使用 php 更改 CSS 时出现问题

php - $variable 是什么? : [] do?

php - 特定文件的mod_rewrite异常

javascript - 如何使用 JavaScript 将 id 设置为 session 值