$wpdb->insert is not working

时间:2017-02-07 作者:Animesh Sahu

我刚刚创建了一个主题,并制作了一个动作就是选项的表单。php,但它给出了一个错误的选项页面没有找到。因此,我决定使用创建插件的代码在wp数据库中创建自己的表:

register_activation_hook(__FILE__, \'create_javart_theme_settings_table\');

function create_javart_theme_settings_table() {

global $wpdb;

$version = get_option(\'my_plugin_version\', \'1.0\');
$charset_collate = $wpdb->get_charset_collate();
$table_name = $wpdb->prefix . \'javart_theme_settings_table\';

$sql = "CREATE TABLE $table_name (
    id bigint(20) NOT NULL AUTO_INCREMENT,
    name varchar(200) DEFAULT \'\' NOT NULL,
    value longtext NOT NULL,
    type varchar(200) NOT NULL,
    PRIMARY KEY  (id)
) $charset_collate;";

require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta($sql);

update_option(\'my_plugin_version\', $version);
}
这段代码可以很好地为我创建一个表,但是当我从表单中插入数据时,页面会刷新,但没有任何内容会进入wordpress db。

表格为:

    <form method="post" action="">
        <p>About Us Diagram &nbsp;&nbsp;&nbsp;&nbsp;<input id="title" type="text" name="title" placeholder="Title" /><input type="text" name="content" placeholder="Content" /></p>
            <?php submit_button(\'Save Settings\'); ?>
    </form>
检索此内容的php代码是

<?php
$titleData = $_POST[\'title\'];
$contentData = $POST[\'content\'];
?>
然后重新进入plugin,在plugin中插入代码的值:

function about_us_form_to_database_exporter() {

global $titleData;
global $contentData;
global $wpdb;

$wpdb->show_errors();
$wpdb->last_query;


$type = \'About Us\';
$table_name = $wpdb->prefix . \'javart_theme_settings_table\';
$wpdb->insert(
$table_name, array(
\'name\' => \'Title\',
\'value\' => $titleData,
\'type\' => \'About Us\',
)
);

$wpdb->print_error();
var_dump($wpdb);
}
register_activation_hook(__FILE__, \'about_us_form_to_database_exporter\');
那么,输入没有进入wordpress数据库的表是什么错误呢

1 个回复
SO网友:WebElaine

听起来,返回并修复您的初始尝试会更简单:将选项保存到WP本机表,而不是创建自己的。尝试update_option - 如果该选项不存在,则创建该选项;如果存在,则更新该选项。这将在将来为您节省大量代码和麻烦。

相关推荐

如何同时使用wpdb导出和导入?

当我使用WP-CLI 我对wp db export和wp db import命令有一些问题。我的桌面上有一个本地站点,我想迁移到我的笔记本电脑上,这样我就可以使用它了。因此,我在桌面上,导航到适当的目录并键入wp db export. 成功创建文件:ccv3-2018-07-12-4e523fb.sql这是我不明白的部分。我将它在桌面上创建的SQL文件复制粘贴到本地网站所在的笔记本电脑目录。I类型wp db import ccv3-2018-07-12-4e523fb.sql --authors=skip