无法创建新的Wordpress数据库表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法创建新的Wordpress数据库表相关的知识,希望对你有一定的参考价值。

谁能帮我弄清楚为什么wordpress在激活我的插件时不创建 "my_notes "表。

<?php
/* NOTES */
function dashboard_my_notes()
{
    global $wpdb;
    require_once(ABSPATH . 'wp-admin/includes/upgrade.php');
    $table_name = $wpdb->prefix . 'my_notes';
    $sql = "CREATE TABLE IF NOT EXISTS $table_name(
            id int(10) unsigned NOT NULL AUTO_INCREMENT,
            date_notes DATE NOT NULL DEFAULT CURRENT_DATE,
            status LONGTEXT NOT NULL,
            notes varchar(9999) COLLATE utf8_unicode_ci NOT NULL,
              PRIMARY KEY (id)
            );";
    dbDelta($sql);
}
add_action( 'plugins_loaded', 'dashboard_my_notes' );
答案

我认为你应该把require_once放在dbDelta($sql)上面的一行。你也把$table_name作为一个字符串。如果你得到的错误是upgrade.php找不到,请尝试使用 ABSPATH . '/wp-admin/includes/upgrade.php' 所以在wp-admin之前有一个。

EDIT: 我对你的sql语句做了一些修改,因为你的错误告诉我们要看看它。请尝试,如果你的数据库表被创建。

<?php
/* NOTES */
function dashboard_my_notes()
{
    global $wpdb;
    $table_name = $wpdb->prefix.'my_notes';
    $sql = "CREATE TABLE ".$table_name."(
            id mediumint(9) NOT NULL AUTO_INCREMENT,
            date_notes datetime NOT NULL,
            status longtext NOT NULL,
            notes text NOT NULL,
            UNIQUE KEY id (id)
            );";
    require_once(ABSPATH . '/wp-admin/includes/upgrade.php');
    dbDelta($sql);
}
add_action( 'plugins_loaded', 'dashboard_my_notes' );

以上是关于无法创建新的Wordpress数据库表的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 表修复失败:“无法创建新的临时文件”

如何从 FTP 创建新的 wordpress 管理员用户

markdown 在WordPress中使用jQuery代码片段

Wordpress - 将代码片段包含到布局的选定部分的插件

PHP WordPress条件为主页SlideDeck主题代码片段

Java错误:创建新的链表节点时无法访问语句[关闭]