用冒号查询给出MySQL语句错误

时间:2014-09-28 14:03:33

标签: mysql

我有一个非常简单的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

此查询有什么问题?我该如何解决这个问题?

3 个答案:

答案 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文档。