我正在尝试在word-press中开发自定义插件。我创建了一个调用以下脚本的表单:
<?php
global $wpdb;
$sql="insert into wp_wbp_unpublished values(null,'".$_POST['bibkey']."',
'".$_POST['author']."','".$_POST['title']."','".$_POST['date']."','".$_POST['note']."',
'".$_POST['keywords']."','nothing');";
echo $sql;
//$wpdb->show_errors();
$wpdb->insert("wp_wbp_unpublished",array('uid'=>null,'pid'=>$_POST['bibkey'],
'author'=>$_POST['author'],'title'=>$_POST['title'],'year'=>$_POST['date'],
'note'=>$_POST['note'],'keyword'=> $_POST['keywords'],'abstract'=>"null"));
$wpdb->query($sql);
//$wpdb->print_error();
?>
正如您所看到的,我尝试了两种不同的方法将数据插入到我的数据库中但没有任何效果。 sql字符串是正确的,我已经检查过了。但是insert()/ query()命令有问题。有什么错误的建议吗?
答案 0 :(得分:0)
老实说,我认为您的代码没有任何问题。在一天结束时,我总是责怪Wordpress因为它糟透了。我遇到了同样的问题,除非用户登录索引文件并尝试对db进行更改。为什么没有人回答这个问题? WTF
答案 1 :(得分:0)
你必须删除分号();在您的自定义或第一次插入查询中
$sql="insert into wp_wbp_unpublished values(null,'".$_POST['bibkey']."',
'".$_POST['author']."','".$_POST['title']."','".$_POST['date']."','".$_POST['note']."',
'".$_POST['keywords']."','nothing');";
其他的事情是当你制作插件时,你必须把&#34; upgrade.php&#34;文件在你的功能...... 我希望它能奏效。
答案 2 :(得分:0)
我使用了以下解决方案,这似乎是最好的:
$wpdb->insert( $table, $data, $format );
例如:
$wpdb->insert(
$prefix.'wp_wbp_unpublished',
array('bibkey'=>$_POST['bibkey'],'author'=>$author),
array('%s','%s')
);
更多信息:https://codex.wordpress.org/Class_Reference/wpdb#INSERT_row