wp自定义插件db插入数据

问题描述 投票:1回答:3

我正在尝试在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()命令有问题。有什么错误的建议吗?

wordpress-plugin
3个回答
0
投票

老实说,我认为你的代码没有任何问题。在一天结束时,我总是责怪Wordpress因为它糟透了。我遇到了同样的问题,除非用户登录索引文件并尝试对db进行更改。为什么没有人回答这个问题?跆拳道


0
投票

你必须删除分号();在您的自定义或第一次插入查询中

$sql="insert into wp_wbp_unpublished values(null,'".$_POST['bibkey']."',
'".$_POST['author']."','".$_POST['title']."','".$_POST['date']."','".$_POST['note']."',
'".$_POST['keywords']."','nothing');";

而其他的事情是当你制作插件时,你必须在你的函数中放入“upgrade.php”文件...我希望它能工作。


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

© www.soinside.com 2019 - 2024. All rights reserved.