在 Wordpress 中激活插件时未创建数据库表

Posted

技术标签:

【中文标题】在 Wordpress 中激活插件时未创建数据库表【英文标题】:Databse Table Not Creating When Activating The Plugin In Wordpress 【发布时间】:2015-02-21 09:48:17 【问题描述】:

$db_name=$wpdb->前缀 .'demo1';

函数 install_plugin()

    global $wpdb;
    global $db_name;
    $sql="CREATE TABLE".$db_name."(
    `id` int(9) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `email` varchar(255) NOT NULL,
    `password` varchar(255) NOT NULL
    );";

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

register_activation_hook(FILE,'install_plugin');

【问题讨论】:

你有一个错字。在CREATE TABLE 之后添加一个空格。而且我认为您想使用 id 字段作为主键。 【参考方案1】:

因为您的创建表语法错误:

表定义不正确;只能有一个自动列,并且必须将其定义为键

尝试关注

CREATE TABLE ".$db_name."(
    `id` int(9) NOT NULL AUTO_INCREMENT,
    `name` varchar(255) NOT NULL,
    `email` varchar(255) NOT NULL,
    `password` varchar(255) NOT NULL,
 PRIMARY KEY (`id`)
    );

【讨论】:

以上是关于在 Wordpress 中激活插件时未创建数据库表的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 表创建抛出错误(而不是创建表)

无法创建新的Wordpress数据库表

仅在 WordPress 中激活和停用插件时运行 JS 文件

在 wordpress 中自动执行插件而不激活它们?

wordpress插件信息在哪个数据表中

在 Wordpress 中激活 Unyson 插件时出错致命错误