我有这段代码:
if(!isset($_GET['query'])) {
echo "<h1>No search query specified.</h1><a href='index.php'>Return</a>";
} else {
$query = trim($_GET['query']);
$query = mysql_real_escape_string($query);
$query = mysql_query("SELECT * FROM warps
WHERE name LIKE '%$query%'
OR desc LIKE '%$query%' OR keywords LIKE '%$query'");
if($query) {
while($row = mysql_fetch_assoc($query)) {
echo $row['name'];
}
} else {
echo "<h1>No results found</h1>";
}
}
当我输入与我的数据库中的信息相对应的搜索查询时,为什么不返回任何结果?
答案 0 :(得分:3)
你不能调用字段desc。或者,如果你这样称呼它就像使用这个`desc`。 DESC是一个命令,因此在您的查询中MySQL认为您希望减少某些内容。
答案 1 :(得分:1)
尝试&#34; var_dump&#34;你的查询和结果,你回来了。 确保您启用了错误报告:
error_reporting(E_ALL);
ini_set('display_errors', 1);
如上所述,您的查询包含MySQL-Keyword DESC作为列名。 如果没有办法重命名该列,您可以将其包含在这样的反引号中:
`desc`
答案 2 :(得分:0)
无论出于何种原因,您选择不使用反引号来划分字段名称。
您可以经常使用此功能,但在您的情况下,您不能,因为DESC
是关键字。
写:
SELECT * FROM `warps`
WHERE `name` LIKE '%$query%'
OR `desc` LIKE '%$query%'
OR `keywords` LIKE '%$query'