gpt4 book ai didi

php - WordPress 插件创建数据库表

转载 作者:行者123 更新时间:2023-11-29 21:00:07 25 4
gpt4 key购买 nike

尝试在我的表中创建一对数据库表。下面是在激活我的插件时执行的代码块。 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com