寻找有关如何在wpdb和最佳实践中转义(斜杠)的说明

时间:2013-07-17 02:50:27

标签: wordpress wpdb

我刚刚修复了一些代码的输出,以便使用wpdb函数从存储在数据库中并从数据库中检索的字符串中删除斜杠。然后我期望必须在我的代码的另一部分修复相同的问题,其中字符串存储在数据库中并从数据库中检索,但注意到没有添加斜杠,所以我对自动添加斜杠时有点困惑。以下是我遇到的这两个案例的观察结果:

案例1 - 我需要在输出上删除斜杠

  1. $_POST数据会自动使用斜杠进行转义
  2. 使用$wpdb->insert$wpdb->update数据最终以数据库中的斜杠
  3. 结束
  4. 使用$wpdb->get_row$wpdb->get_results检索的数据有斜杠
  5. 我使用stripslashes来解决此问题
  6. 案例2 - 我不需要在输出上删除斜杠

    1. $_POST数据会自动使用斜杠进行转义
    2. 使用$wpdb->query插入和更新数据最终没有数据库中的斜杠
    3. 使用$wpdb->get_row$wpdb->get_results检索的数据没有斜杠
    4. 无需在输出上删除斜杠
    5. 我的问题是:

      • 为什么这两种情况的行为不同?
      • 使用wpdb函数时处理转义的最佳做法是什么?
      • 如果字符串包含单引号,该引号是否应在数据库中转义? (即如果你在PHPMyAdmin中查看)

1 个答案:

答案 0 :(得分:0)

来自codex:

  

$ data列和$ data值都应该是“raw”(两者都不应该是SQL转义)。这意味着如果您使用GET或POST数据,则可能需要使用striplashes()来避免数据库中的斜杠。

您可能还想查看此部分:http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks