我正在尝试在激活插件时创建数据库表。但是,它没有被创建,我也不知道为什么。该文件的位置是正确的,我尝试使用$ wpdb-> query和$ dbDelta两者都无法正常工作。
在includes / davi-referrals-install.php文件中找到以下代码。
<?php
/*
*Create database table on plugin activation
*/
function dr_activation () {
global $wpdb;
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
//Table Used To Store Referrer Accounts
$table_name = $wpdb->prefix . "dr_accounts";
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
name text NOT NULL,
email varchar(200) NOT NULL,
password varchar(64) NOT NULL
companyname text NOT NULL,
telephone text NOT NULL,
code text NOT NULL,
balance text NOT NULL,
registered datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
$wpdb->query($sql);
}?>
主插件文件:
//Return Plugin Installation Process
function referral_activation(){
require_once plugin_dir_path( __FILE__ ).'includes/davi-referrals-install.php';
dr_activation();
} register_activation_hook( __FILE__, 'referral_activation');
启用WP_DEBUG时出现的错误是,当我删除dr_activation()函数调用时,此错误不再显示:
该插件在激活期间生成了777个字符的意外输出。
答案 0 :(得分:0)
启用以下功能后,很容易找到:
define( 'WP_DEBUG_DISPLAY', true );
define( 'WP_DEBUG_LOG', true );
密码声明后我错过了一个逗号:
password varchar(64) NOT NULL
companyname text NOT NULL,
解决方案:
password varchar(64) NOT NULL,
companyname text NOT NULL,