我有一个非常简单的MySQL查询
$name = 'Long's Jewelers';
查询是,
$query = "SELECT callDetails.* , clients.* FROM callDetails JOIN clients ON clients.id = callDetails.userId WHERE storeName LIKE '%".$name."%'";
当我运行此查询时,我在
处收到错误Long's JewelersYou have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's Jewelers%'' at line 1
此查询有什么问题?我该如何解决这个问题?
答案 0 :(得分:1)
使用PDO的解决方案
$query = $con->prepare("SELECT callDetails.* , clients.* FROM callDetails JOIN clients ON clients.id = callDetails.userId WHERE storeName LIKE :name");
$query->bindValue(':name',"%$name%",PDO::PARAM_STR);
$query>execute();
其中$ con是您的连接
使用mysqli解决方案
mysqli_real_escape_string($con,$name);
不推荐使用Mysql (如果您仍在使用它)
mysql_real_escape_string($name);
如果mysql / mysqli在$ query之前转义字符串。它将帮助您避免SQL注入
答案 1 :(得分:0)
像
一样编写变量$name = 'Long''s Jewelers';
它会起作用。
答案 2 :(得分:0)
尝试:
$name = 'Long''s Jewelers';
你也可以使用:
'Long\'s Jewelers';
您可以使用php
函数mysql_real_escape_string
:
然后尝试:
$name = "Long's Jewelers";
$name = mysql_real_escape_string($name);
请参阅this文档。