PDO使用通配符名称动态地将列添加到多个表

时间:2018-01-06 01:26:09

标签: php pdo

我在下面有一个代码,它将名为"age"的列添加到名为"us@house"的表中。

$table = 'us@house';
$column = 'age';

$sql = $DB_CON_C->query("ALTER TABLE `".$table."` ADD $column VARCHAR(255) NOT NULL AFTER id");
$sql->execute();

此代码适合我。但是,在我的数据库中,我有多个表(大约20个表,每个表的名称都有" @"正如我在代码中看到的那样)我需要添加相同的列"年龄"他们每个人。有谁知道如何使用通配符更改现有代码以实现此目的?提前谢谢!

1 个答案:

答案 0 :(得分:0)

使用通配符无法实现此目的。您可以做的是编写一个存储过程,枚举与您的格式匹配的所有表并执行必要的更改。或者,您可以通过PHP运行多个查询,如下所示:

$tab_prefixes = array('a', 'b', 'c');
$tab_suffix = '@house';

foreach ($tab_prefixes as $tab_prefix)
{
    $sql = $DB_CON_C->query("ALTER TABLE `".$tab_prefix.$tab_suffix."` ADD age VARCHAR(255) NOT NULL AFTER id");
    $sql->execute();
}