Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql alter table添加重复名称错误_Php_Mysql_Sql_Wordpress - Fatal编程技术网

Php Mysql alter table添加重复名称错误

Php Mysql alter table添加重复名称错误,php,mysql,sql,wordpress,Php,Mysql,Sql,Wordpress,我比以前写了一个wp插件。 我尝试此插件更新。 当前更新使用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,

我比以前写了一个wp插件。
我尝试此插件更新。
当前更新使用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();
}
我的错误


我不明白你为什么要在事实之后添加列。但是,通过更改
alter
脚本以动态调用表名,就像在
create
语句中一样,确保将列添加到先前创建的表中

那么就没有理由设置两次
$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();
}

这看起来是个坏主意。