我比以前写了一个wp插件。
我尝试了这个插件更新。
Current update使用alter table sql查询。
但是我得到了WordPress数据库错误:
$abouts_table_name = $wpdb->prefix . $this->abouts_content_table;
$sql = "CREATE TABLE IF NOT EXISTS {$abouts_table_name} (
id INT(11) NOT NULL AUTO_INCREMENT,
$this->abouts_contents TEXT,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
dbDelta($sql);
$alter_sql = "ALTER TABLE wp_about_years_content ADD year_id INT NOT NULL";
try {
$alter_sql = "ALTER TABLE wp_about_years_content ADD year_id INT NOT NULL";
if (!$wpdb->query($alter_sql)) {
throw new Exception("tablo zaten var");
}
} catch (Exception $exc) {
echo $exc->getMessage();
}我的错误

发布于 2014-02-13 04:21:22
我不明白你为什么要在事实之后加上栏目。但是要确保将列添加到前面创建的同一个表中,方法是像在create语句中一样,将alter脚本更改为动态调用表名。
那么就没有理由将$alter_sql设置两次。
您的代码应该如下所示。请原谅我的代码,如果不正确的php技能极其生疏。
$abouts_table_name = $wpdb->prefix . $this->abouts_content_table;
$sql = "CREATE TABLE IF NOT EXISTS {$abouts_table_name} (
id INT(11) NOT NULL AUTO_INCREMENT,
$this->abouts_contents TEXT,
PRIMARY KEY(id)
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1";
dbDelta($sql);
try {
$alter_sql = "ALTER TABLE {$abouts_table_name} ADD year_id INT NOT NULL";
if (!$wpdb->query($alter_sql)) {
throw new Exception("tablo zaten var");
}
} catch (Exception $exc) {
echo $exc->getMessage();
}https://stackoverflow.com/questions/20923893
复制相似问题