ALTER TABLE
是否可以使用 PDO添加参数。
我努力了,
$q = $dbc -> prepare("ALTER TABLE emblems ADD ? TINYINT(1) UNSIGNED NOT NULL DEFAULT '0', ADD ? DATETIME NOT NULL");
$q -> execute(array($emblemDB, $emblemDB . 'Date'));
但它失败了。
谢谢。
据我所知,alter table 查询的性质不是准备好的语句。但是您应该为大多数表更改查询调用beginTransaction
and函数。commit()
$dbh->beginTransaction();
/* Change the database schema and data */
$sth = $dbh->exec("DROP TABLE fruit");
$sth = $dbh->exec("UPDATE dessert
SET name = 'hamburger'");
$sth = $dbh->exec("ALTER TABLE `dessert` ADD `field1` VARCHAR(24) NOT NULL");
/* Commit changes */
$dbh->commit();
尽管据我所知,您可以使用准备好的语句并执行。
注意:
MySQL 隐式调用CREATE TABLE
和DROP TABLE
查询的 commit() 函数,因此无法回滚。
此外,如果您想将变量传递给更改表查询,请确保清理您的用户输入(如果它来自那里),并在您的数据库上创建一个存储过程,然后使用 PDO 调用它并附加您的变量输入输出。只是关于您的问题的措辞的想法。