Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的MySql选择查询有什么问题吗?_Php_Jquery_Mysql_Ajax - Fatal编程技术网

Php 我的MySql选择查询有什么问题吗?

Php 我的MySql选择查询有什么问题吗?,php,jquery,mysql,ajax,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 corr

我正在尝试使用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

我陷入了困境,任何人都请帮助我,提前谢谢。

可能是线路中断,试试这个

$que = "SELECT * FROM manifest_child".
        "WHERE   manifest_id     = $manifest_id".
        "AND     s_no            = $sub_id".
        "AND     branch_code     = '$branch_code'";
我认为你的清单id和序号不是整数,所以用引号括起来。试试这个

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

您的查询对于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。

我得到了答案,它给出了一个mysql错误,因为$manifest\u 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关键字前面的等号。谢谢大家

我认为$manifest\u id有问题。尝试检查它。尝试输出查询,以便查看它的外观。您应该在变量周围加上单引号,如果它不是整数,则会出错。不,先生,我尝试了不同的空格,但没有任何收获:@Tristan该查询在phpmyadmin的MYSQL选项卡中运行良好,那么为什么会出现SQL语法错误?不,先生,它们是整数只需检查一次查询。看看是否有相同的错误。所有这些变量都是由mysql\u real\u escape\u string细化的。从您提供的错误代码'AND s_no=3 AND branch_code='KHI注意到KHI后面有双引号,所以您必须知道它来自何处。我尝试了您的查询,得到了相同的错误,但方式不同,我在下面的回答中提到了它,我无法将您的答案标记为答案,但它实际上是一个答案,听起来很奇怪,但无论如何还是要感谢您:将查询拆分为引用字符串中的多行就可以了。这个答案只会让sql更难阅读和编辑等等@Berniv你看到第一条评论了吗?