是否需要在GET_RESULTS()、GET_ROW()和GET_var()之前准备查询?

时间:2016-02-16 作者:Louis Tran

我知道,当我们将其放入insert()和update()中时,不需要使用prepare($query),因为这些函数会为我们清理数据,但我不确定在将其放入get\\u results()、get\\u row()和get\\u var()之前是否需要准备查询?

非常感谢。

1 个回复
最合适的回答,由SO网友:Adam 整理而成

如果您的查询没有动态输入,那么从技术上讲,您不需要使用$wpdb->prepare(), 然而,这假设您自己的输入是安全的。

如果您的查询包含动态参数,尤其是由表单中的用户提供的参数,那么您需要使用$wpdb->prepare().

使用$wpdb->prepare() 这只是一种很好的做法,但为了使用它,必须传递至少两个参数(查询和至少一个占位符)。

请注意:从3.5开始,wpdb::prepare()强制至少2个参数。

请参见:https://make.wordpress.org/core/2012/12/12/php-warning-missing-argument-2-for-wpdb-prepare/