此错误:
致命错误:对非对象调用成员函数insert()
意味着$wpdb
没有实例化,所以您运行代码太早或在WordPress上下文之外——例如,在直接访问的外部PHP文件中,这是我怀疑的(可能是构思糟糕的AJAX请求?)。
如前所述,代码的格式更多,数据元素和单引号无论如何都会导致此失败(在某种意义上),因为您将在数据库中插入“$email”和“$name”字符串。
function insert_record_to_db($name,$email,$dis){
global $wpdb;
$tablename = $wpdb->prefix.\'complaint\';
$data=array(
\'name\' => $name,
\'email\' => $email,
\'dis\' => $dis
);
$format= array(\'%s\',\'%s\',\'%s\');
$wpdb->insert( $tablename , $data , $format );
};
insert_record_to_db(\'a\',\'b\',\'c\');