在我的数据库中,我有一个名为storeName
的列,其值为Joe's Kitchen
。
当用户进入Joe的Kitchen时,我会将其存储在名为storeName
的变量中,并对其执行选择查询,如下所示:"SELECT * FROM shops WHERE storename='".$storeName."'"
。现在的问题是该值包含撇号,我应该怎么做呢?
我已经尝试过以下方法,但它无法正常工作
$storeName = mysqli_real_escape_string($db->getConnection(),$_POST["storeName"]);
答案 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"