我正在使用自定义主题的wordpress网站,我无法弄清楚如何让$ wpdb-> prepare($ query,$ args)工作。
问题
我在wp-content / themes / mytheme / php / functions.php中有一个函数运行$ wpdb-> prepare($ query,$ args)来保护查询免于SQL注入,然后再执行查询并插入一些新数据。但是,当我运行此函数时,我得到一个错误,该错误在运行$ wpdb-prepare()的行上显示“在null上调用成员函数prepare()”。我做了一些谷歌搜索,发现这意味着$ wpdb尚未定义。
我尝试了什么
根据我在网上找到的其他主题,我尝试定义
global $wpdb
在我的函数内部和functions.php的顶部。如果那不起作用,我试着把
include_one('/wp-includes/wp-db.php')
位于functions.php的顶部,但仍然没有。
有没有人对我可以尝试的内容有任何其他想法?
答案 0 :(得分:1)
它调用函数就好了,但它找不到有效的输入(null)。你用什么来定义你的表名?我之前已经有了$ wpdb无法运行的地方,除非我像这样定义它:
global $wpdb;
$table = $wpdb->prefix . "table_name";
$sql = $wpdb->prepare( "SELECT * FROM {$table} ORDER BY something DESC");
$result = $wpdb->get_results( $sql , ARRAY_A );