我刚刚修复了一些代码的输出,以使用wpdb
函数从存储在数据库中和从数据库中检索的字符串中删除斜杠。然后我希望必须在我的代码的另一部分中解决相同的问题,其中字符串存储在数据库中并从数据库中检索,但注意到没有添加斜杠,所以我对何时自动添加斜杠有点困惑。以下是我遇到的这两个案例的观察结果:
案例 1 - 我需要在输出中去除斜线
$_POST
数据自动用斜杠转义- 通过使用
$wpdb->insert
和$wpdb->update
数据结束数据库中的斜杠 $wpdb->get_row
用$wpdb->get_results
斜线检索的数据- 我使用stripslashes 来解决这个问题
案例 2 - 我不需要在输出中去除斜线
$_POST
数据自动用斜杠转义- 用于
$wpdb->query
插入和更新数据最终在数据库中没有斜杠 - 使用斜线检索的数据
$wpdb->get_row
且$wpdb->get_results
没有斜线 - 无需在输出时去除斜线
我的问题是:
- 为什么这两种情况下的行为不同?
wpdb
使用函数时处理转义的最佳做法是什么?- 如果字符串包含单引号,是否应该在数据库中转义该引号?(即如果您在 PHPMyAdmin 中查看它)