Php 我的MySql选择查询有什么问题吗?
我正在尝试使用Ajax请求从数据库中获取一些结果: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
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你看到第一条评论了吗?