以下是的更新版本installer.php
它在激活插件时创建表。
在继续创建新表之前,已添加检查以查看自定义表是否存在。
还添加了版本号。它存储在选项表中。如果在更新过程中需要修改数据库,这将在将来有所帮助。
<?php
global $wpdb;
$table_name = $wpdb->prefix . "xenonresult";
$xenonresult_db_version = \'1.0.0\';
$charset_collate = $wpdb->get_charset_collate();
if ( $wpdb->get_var( "SHOW TABLES LIKE \'{$table_name}\'" ) != $table_name ) {
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
`student-id` mediumint(9) NOT NULL,
`student-name` text NOT NULL,
`marks-obtained` int(9) NOT NULL,
result text NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
require_once( ABSPATH . \'wp-admin/includes/upgrade.php\' );
dbDelta( $sql );
add_option( \'xenonresult_db_version\', $xenonresult_db_version );
}
原始代码存在一些问题:
if(!isset($table_name)){
这总是会回来的
true
因为
$table_name
已设置。
此行末尾缺少逗号:
id mediumint(9) NOT NULL AUTO_INCREMENT
表名中的某些字符要求将表名括在反勾中,
this includes hyphens:
student-id mediumint(9) NOT NULL,
student-name text NOT NULL,
marks-obtained int(9) NOT NULL,
为了帮助调试,当遇到这样的问题时,最好检查PHP错误日志。