问题描述
我已经通过PHPMyAdmin在wordpress数据库中创建了一个新表。 但是,我无法写入我创建的任何表中。用相同的代码在诸如Metapost之类的预定义表中进行书写就可以了。当我写出错误时,似乎wordpress认为我“忘记了”输入表名,就像wordpress不知道该新表存在一样。到底是怎么回事? 我桌子的名字是赫斯特
这是我的代码:
<?PHP
$Metakey = 'THAT IS';
$Metavalue = 'DONE.';
$wpdb->query(
$wpdb->prepare(
"
INSERT INTO $wpdb->hest
( Meta_key,Meta_value )
VALUES ( %s,%s)
",$Metakey,$Metavalue
)
);
$wpdb->show_errors();
echo $wpdb->last_query;
?>
这是show_error消息: 如您所见,表名称在执行的查询中突然消失了。
wordpress数据库错误:[您的sql语法有错误;检查与您的MariaDB服务器版本相对应的手册以获取正确的语法,以在第2行的'(Meta_key,Meta_value)VALUES('THAT IS','DONE。)'附近使用] INSERT INTO(Meta_key,Meta_value)VALUES('THAT IS','DONE。')
谢谢!!
为克里斯打气。
解决方法
查看文档,似乎只有默认tables作为wpdb
类的属性。您需要将新表作为字符串引用。
$wpdb->query(
$wpdb->prepare(
"
INSERT INTO hest
( meta_key,meta_value )
VALUES ( %s,%s)
",$metakey,$metavalue
)
);
您也可以使用insert function在新表中插入一行。
$wpdb->insert(
'hest',array(
'meta_key' => $metakey,'meta_value' => $metavalue,),array(
'%s','%s',)
);