2015-06-28 79 views
0

在我的数据库中,我有一个名为storeName的列,其值为Joe's Kitchen带撇号的SELECT查询

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

我曾尝试下面的方法,但它不能正常工作

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

使用准备好的语句来插入 – user1844933

回答

0

写两个撇

 

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

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

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

0

你能做到这样也

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

你应该重复的,而回答。 –