php - WordPress 插件创建数据库表

标签 php mysql wordpress

尝试在我的表中创建一对数据库表。下面是在激活我的插件时执行的代码块。 Wordpress 报告它是成功的,但是,在刷新数据库时,并未创建员工表。然而,部门表已成功创建。

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

    // create the database table.        
    global $wpdb;
    $charset_collate = $wpdb->get_charset_collate();

    $table_name = $wpdb->prefix . "plugin_department";
    $table_name2 = $wpdb->prefix . "plugin_employee";

    $sql = "CREATE TABLE $table_name (
        id INT(11) NOT NULL AUTO_INCREMENT,   
        name VARCHAR(255) NOT NULL,
        PRIMARY  KEY (id)
        ) $charset_collate;";

     $sql2 = "CREATE TABLE $table_name2 (
        id INT(11) NOT NULL AUTO_INCREMENT,     
        first_name VARCHAR(255) NOT NULL,
        last_name VARCHAR(255) NOT NULL,
        department_id INT(11) NOT NULL,
        PRIMARY  KEY (id),
        CONSTRAINT department_id
        FOREIGN KEY (id)
        REFERENCES plugin_department (id)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION);
        ) $charset_collate;";                

    dbDelta($sql);        
    dbDelta($sql2);        

非常感谢有关如何解决问题的想法。

最佳答案

发现了这个问题,使用mysql工作台我让它为我生成创建表脚本,然后是一个简单的复制并粘贴到$sql2变量中。我的假设是,一定有一个奇怪的字符或语法错误,我的眼睛很难辨别出来。

     $sql2 = "CREATE TABLE $table_name2 (
      `id` INT NOT NULL AUTO_INCREMENT,
      `first_name` VARCHAR(255) NOT NULL,
      `last_name` VARCHAR(45) NOT NULL,
      `department_id` INT NOT NULL,
      PRIMARY KEY (`id`),
      INDEX `wp_plugin_employee_department_idx` (`department_id` ASC),
      CONSTRAINT `wp_plugin_employee_department`
        FOREIGN KEY (`department_id`)
        REFERENCES `plugin_intranet`.`wp_plugin_department` (`id`)
        ON DELETE NO ACTION
        ON UPDATE NO ACTION)";      

关于php - WordPress 插件创建数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305286/

相关文章:

php - 使用 Javascript 和 PHP 使用 TTF 生成图像

php - 无法计算出 Sendgrid SMTP (Laravel) 的用户名和密码

php - MYSQL 连接检索结果

java - 结果集在 while 循环中只迭代一次

mysql - 从 MySQL 数据库 Access Microsoft Access 表

php - 如何在 wordpress 中更改链接的 Logo ?

mysql - 在 RHEL7 上安装 mysql-devel

xml - 您如何在WP ALL IMPORT中为选定的高级自定义字段格式化xpath值?

php - 在设定的段落数后添加额外的广告

php - 从分类法和日期压缩附加图像