【发布时间】:2013-11-26 14:52:02
【问题描述】:
我创建了一个 php 搜索脚本来搜索 MySQL 数据库,但没有搜索返回结果。
表格代码
<form method="post" action="search.php">
<input type="text" value="Search..." name="query" />
<input type="submit" value="Find" name="completedsearch" />
</form>
PHP 脚本
<?php
if(isset($_POST['completedsearch']))
{
$term = $_POST['query'];
$mysql = mysql_connect("localhost","searchuser","password");
mysql_select_db("hcsd");
$qu = mysql_query("SELECT * FROM your_table WHERE COMPANY LIKE '%{$term}%' OR LOCATION LIKE '%{$term}%' OR KEYWORDS LIKE '%{$term}%' OR PRODUCTSSERVICES LIKE '%{$term}%' ");
echo "
<th>Name</th>
<th>Location</th>
<th>Products/Services</th>
";
while($row = mysql_fetch_array($qu))
{
echo "<tr><td>";
echo $row['COMPANY'];
echo "</td>";
echo "<td>";
echo $row['LOCATION'];
echo "</td>";
echo "<td>";
echo $row['PRODUCTSSERVICES'];
echo "</tr></td>";
}
}
?>
MySQL 数据库有 4 列,标题为 COMPANY、LOCATION、KEYWORDS 和 PRODUCTSSERVICES,此脚本应搜索任何列的搜索词,然后显示表中任何匹配行的 COMPANY、LOCATION 和 PRODUCTSSERVICES,但即使使用我知道 100% 都在 MySQL 表中的搜索词,我仍然没有收到任何结果。
【问题讨论】:
-
摘掉花括号:
Like '%$term%' -
看看这个:SQL Injection
-
最后,您交换了 和 ,我认为它应该回显“” - 您可能需要查看生成的 html 代码
-
去掉了大括号,仍然没有返回结果
-
您从中选择的表真的叫“your_table”吗?