$wpdb->Prepare的工作方式与MYSQL_REAL_EASH_STRING不同

时间:2015-05-13 作者:Developer

我正在开发WordPress插件,最近我计划从SQL迁移到$wpdb. 我正在使用一个名为$wpdb->prepare 而不是mysql_real_escape_string 但它不起作用。以下是我尝试的内容:

代码:

echo $fetch_row;
输出:

a: 5:{s:9:“task\\u name”;s:10:“立即备份”;s:9:“机制”;s:10:“singleCall”

代码:

echo mysql_real_escape_string( $fetch_row )
输出:

\'a:5:{s:9:\\“任务名称”\'s:10:\\“立即备份”\'s:9:\\“机制”

之后mysql_real_escape_string 执行的函数可以看到字符串中的差异。

我来了this question on stackexchange 所以我用$wpdb->prepare($fetch_row)但是输出没有改变,它就像输入一样。

告诉我哪里出了错。

1 个回复
SO网友:TheDeadMedic

Check the codex - wpdb::prepare 要求第一个参数为sprintf 语法字符串,后跟要注入的参数(同样,与sprintf一样):

echo $wpdb->prepare( \'%s\', $fetch_row );

结束

相关推荐

修复wpdb->GET_RESULTS和wpdb->准备?

所以我一直在使用这个主题Vilan 从他们前面。除了这个主题,还有几个插件,其中一个是Revolution Slider. 我也在使用Bedrock 通过Roots. 我收到以下错误:注意:wpdb::prepare的调用不正确。wpdb::prepare()的查询参数必须有占位符。有关详细信息,请参阅WordPress中的调试。(此消息是在版本3.9中添加的。)在/Applications/MAMP/htdocs/localppl/web/wp/wp-includes/functions中。php第35