Php 查询赢得';使用LIKE与返回的ajax数据不匹配

Php 查询赢得';使用LIKE与返回的ajax数据不匹配,php,javascript,jquery,mysql,Php,Javascript,Jquery,Mysql,我正在尝试将MySQl数据库中的配置文件和拖放到可拖放div中的名称和技能集进行匹配。我遇到了两个问题,一个是错误mysql\u fetch\u array()期望参数1是resource,给定的布尔值,我认为这意味着我的查询返回false。这就引出了另一个问题,我的$数据与任何内容都不匹配。如何将拖放到可拖放div中的名称和技能与数据库中的名称和技能进行匹配 if (isset($_POST['data'])){ $data = $_POST['data']; $query = mysql_

我正在尝试将MySQl数据库中的配置文件和拖放到可拖放div中的名称和技能集进行匹配。我遇到了两个问题,一个是错误
mysql\u fetch\u array()期望参数1是resource,给定的布尔值
,我认为这意味着我的查询返回false。这就引出了另一个问题,我的$数据与任何内容都不匹配。如何将拖放到可拖放div中的名称和技能与数据库中的名称和技能进行匹配

if (isset($_POST['data'])){
$data = $_POST['data'];

$query = mysql_query("SELECT * FROM gradesheet WHERE 'firstname','lastname','grade' LIKE '{$data}'");

    while($row=mysql_fetch_array($query)){
            $firstname=$row['firstname'];
            $lastname=$row['lastname'];
            $gradet=$row['grade'];
            $user_id=$row['user_id'];

echo $firstname;

我用
%比如%
认为这会给我一个比
比赛更好的机会。如果您有任何知识或想法能够更好地匹配我的查询并让它返回一些信息,我将不胜感激。以及一般提示。

您需要对
WHERE
语句中的每一列执行类似的
操作,并选择
将它们组合在一起。百分比符号
%
是一个通配符

SELECT * FROM gradesheet 
WHERE 'firstname' LIKE '%term%' 
    OR 'lastname' LIKE '%term%' 
    OR 'grade' LIKE '%term%'

您还应该避免像以前那样使用
mysql.*
PHP扩展;使用或代替。除了使用不推荐使用的扩展之外,您的代码还容易受到SQL注入攻击。在将请求变量中的数据粘贴到查询中之前,您应该始终对其进行筛选。

您的代码非常不安全。您对SQL注入非常开放,如果您还没有进行过SQL注入,您将被黑客攻击。学习使用PDO或类似的预先准备好的查询。感谢@Brad!!好的,非常感谢@doublesharp确实知道任何关于PDO或mysqli的好教程??答案中的“PDO”和“mysqli”文本都链接到包含示例的文档,但我不知道有什么好的教程在我脑海中浮现——我相信谷歌可以帮上忙;)好的,我真的很感谢你的帮助!