我的MySql Select查询有什么问题吗?

时间:2015-11-14 07:47:21

标签: php jquery mysql ajax

我试图使用Ajax请求从数据库中获取一些结果:

SELECT * 
FROM manifest_child 
WHERE manifest_id = $manifest_id
AND s_no = $sub_id
AND branch_code = '$branch_code'
        ";

一切看起来都不错,但是当我传递一些值时会出错:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND s_no = 3 AND branch_code = 'KHI'' at line 3

我被困在那里,任何人都请帮帮我,谢谢你。

4 个答案:

答案 0 :(得分:0)

可能是换行尝试这个

$que = "SELECT * FROM manifest_child".
        "WHERE   manifest_id     = $manifest_id".
        "AND     s_no            = $sub_id".
        "AND     branch_code     = '$branch_code'";

答案 1 :(得分:0)

我认为你的manifest_id ans s_no不是整数,所以请用引号括起来。试试这个

$que = "SELECT * FROM manifest_child 
        WHERE manifest_id = '$manifest_id' 
        AND s_no = '$sub_id' 
        AND branch_code = '$branch_code'";

答案 2 :(得分:0)

您的查询对SQL注入不安全 你必须这样做:

$que = mysql_escape_string($que);
$que = "SELECT * FROM manifest_child 
    WHERE   manifest_id     = $manifest_id 
    AND     s_no            = $sub_id 
    AND     branch_code     = '$branch_code'
    ";
通过这种方式,您的代码将更加安全,您将远离此错误。 我认为错误是因为你把另一个' (qute)传递参数时。

答案 3 :(得分:0)

我得到了答案,它给出了一个mysql错误,因为$ manifest_id得到一个空值,因此WHERE子句没有得到满足,我没有注意到,因为mysql错误没有显示错误中的空部分。 我尝试以不同的方式查询,错误仍然存​​在,但以不同的方式:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '=AND s_no = 3 AND branch_code = 'KHI'' at line 3

注意AND关键字前面的等号。感谢大家。 :)