使用撇号进行SELECT查询

时间:2015-06-28 05:29:40

标签: php mysql

在我的数据库中,我有一个名为storeName的列,其值为Joe's Kitchen

当用户进入Joe的Kitchen时,我会将其存储在名为storeName的变量中,并对其执行选择查询,如下所示:"SELECT * FROM shops WHERE storename='".$storeName."'"。现在的问题是该值包含撇号,我应该怎么做呢?

我已经尝试过以下方法,但它无法正常工作

$storeName = mysqli_real_escape_string($db->getConnection(),$_POST["storeName"]);

3 个答案:

答案 0 :(得分:0)

通过写两个撇号来逃避查询中的撇号 例子


    SELECT * FROM shops WHERE storename='Joe''s Kitchen'  //added 2 apostrophes

这不是推荐的方法,因为它有严重的安全问题,尝试使用pdo或参数化查询

答案 1 :(得分:0)

在SQL查询中,您可以用`替换单引号'。然后名称可以包含单引号...

答案 2 :(得分:0)

你也可以这样做

SELECT * FROM shops WHERE    
storename="Joe\'s Kitchen"