PHP MySQL搜索不返回结果

PHP MySQL搜索不返回结果,php,mysql,sql,Php,Mysql,Sql,我创建了一个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

我创建了一个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>";
                            }
                    }
            ?>

我不确定花括号在这里是否有用

替换

 $qu = mysql_query("SELECT * FROM your_table WHERE COMPANY LIKE '%{$term}%' OR LOCATION LIKE '%{$term}%' OR KEYWORDS LIKE '%{$term}%' OR PRODUCTSSERVICES LIKE '%{$term}%' ");

您还应该转义输入

 $qu = mysql_query("SELECT * FROM your_table WHERE COMPANY LIKE '%".mysql_real_escape_string($term)."%' OR LOCATION LIKE '%".mysql_real_escape_string($term)."%' OR KEYWORDS LIKE '%".mysql_real_escape_string($term)."%' OR PRODUCTSSERVICES LIKE '%".mysql_real_escape_string($term)."%'");

也考虑使用最近的MySQL函数

表的名称是什么?
您应该在phpmyadmin或任何用于管理数据库的软件中尝试您的请求,并查看结果。如果没有结果,则可能是您的请求中有错误。

取下大括号:
如“%$term%”
并检查:最后,您交换了,它应该回显“”我认为-您可能必须查看生成的html代码删除大括号,仍然没有返回结果您从中选择的表真的被称为“your_table”吗?该表被称为Sheet1。我没有想到,我会用go+1询问表名,稍早之前,我想:)接受了这个答案,因为帮助添加了输入转义和@Chris Wheeler在上面的评论中回答了我的问题。+1改进了这个请求。最好的方法是使用PDO,并按照@Chris Wheeler的建议使用prepare request或最近的mysqli。它更安全。PHP文档推荐:它不是“附加安全性”,而是正确编写。如果用户数据包含
之类的字符,则无法转义将导致各种错误。
 $qu = mysql_query("SELECT * FROM your_table WHERE COMPANY LIKE '%".mysql_real_escape_string($term)."%' OR LOCATION LIKE '%".mysql_real_escape_string($term)."%' OR KEYWORDS LIKE '%".mysql_real_escape_string($term)."%' OR PRODUCTSSERVICES LIKE '%".mysql_real_escape_string($term)."%'");