$ wpdb-> prepare不像mysql_real_escape_string那样工作

时间:2015-05-13 13:07:36

标签: php mysql wordpress wpdb

我正在使用WordPress插件,最近我计划从SQL迁移到$wpdb。我正在使用名为$wpdb->prepare的方法而不是mysql_real_escape_string,但它不起作用。 这是我试过的:

代码:

echo $fetch_row;

输出:

  

a:5:{s:9:“task_name”; s:10:“立即备份”; s:9:“机制”; s:10:“singleCall”

代码:

echo mysql_real_escape_string( $fetch_row )

输出:

  

'a:5:{s:9:\“task_name \”; s:10:\“立即备份\”; s:9:\“mechanism \”

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

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

建议我在哪里犯错误。

1 个答案:

答案 0 :(得分:0)

我所看到的是您正在尝试清理结果,而不是 SQL查询。因此,默认情况下这将返回false,因为wpdb->prepare()检查具有sprintf / vsprintf格式模式的字符串。

  

https://developer.wordpress.org/reference/classes/wpdb/prepare/

根据变量包含的内容,您可能需要检查与其更相关的内容。

  

https://developer.wordpress.org/reference/functions/wp_json_encode/

- 将根据更多说明进行更新