【问题标题】:SELECT query with apostrophe [duplicate]带撇号的 SELECT 查询 [重复]
【发布时间】:2015-09-14 18:46:24
【问题描述】:

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

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

下面的方法我试过了,还是不行

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

【问题讨论】:

  • 使用准备好的语句插入

标签: php mysql


【解决方案1】:

你也可以这样做

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

【讨论】:

  • 你应该重复回答。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    通过写两个撇号来转义查询中的撇号
    示例

    SELECT * FROM stores WHERE storename='Joe''s Kitchen' //添加了 2 个撇号
    这不是推荐的方法,因为它存在严重的安全问题,请尝试使用 pdo 或参数化查询

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-22
      • 1970-01-01
      • 1970-01-01
      • 2018-08-14
      • 1970-01-01
      • 2019-01-02
      • 2017-08-07
      • 2010-11-23
      相关资源
      最近更新 更多