Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT

Posted

技术标签:

【中文标题】Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT【英文标题】:Wordpress: wpdb->insert VERSUS wpdb->prepare(wpdb->query("INSERT 【发布时间】:2011-01-24 05:57:14 【问题描述】:

我想知道 wordpress 的插入功能是否也会在数据中添加斜线。如果不是这样,那么准备查询方法似乎可以更好地防止 SQL 注入。我尝试在 codex/api 中查找问题;但是,它似乎没有记录。 谢谢!

【问题讨论】:

【参考方案1】:

这个问题有点老了,自从被问到这个问题后,codex 可能已经更新了。 wpdb->insert()wpdb->prepare() 在 SQL 转义输入数据方面提供相同级别的安全性。

codex states 表示提供给插入方法的列值和数据值都应该是原始的,而不是 SQL 转义的。

我还快速查看了来源以确认。 insert 方法的实现使用wpdb->prepare()

【讨论】:

+1。不再做wordpress的东西;但是,这个答案很震撼。我记得我根本不知道 prepare 做了什么,也不知道为什么所有的例子都在使用它。【参考方案2】:

Wordpress 使用ezSQL 来查询数据库。从技术上讲,它不是一个抽象层,但它确实去掉了一些样板代码。 ezSQL 有一个函数escape,所以我假设 Wordpress 在执行查询之前总是会调用转义函数。但要确定,您必须查看源代码。

这是您在 Wordpress 中转义字符串的方式:$safe_string = $wpdb->escape($unsafe_string);

【讨论】:

以上是关于Wordpress:wpdb->插入与 wpdb->prepare(wpdb->query("INSERT的主要内容,如果未能解决你的问题,请参考以下文章

Wordpress JOIN wp_post 和 wp_postmeta

Wordpress - $wpdb->插入 - MySQL NOW()

从 wordpress $wpdb 获取最后插入的 id

显示注意事项:未定义的属性:D:\wamp\www\wordpress-4.7.1\wordpress\wp-includes\wp-db.php 中的 wpdb::$insertid 第 684 行

如何在 Wordpress 中插入数据?

wordpress通过$wpdb获取一个分类下所有的文章