我有一个脚本,它能够建立一个较长的准备好的语句事务,我想要一种打印即将执行的内容的方法。
PDO 中没有一个类方法看起来很有希望。
编辑: 这是一个(hacky)数据库升级脚本,作为健全性检查。开发人员应该在修改数据库时附加到脚本。
$commonStmt = $pdo->prepare("INSERT ... VALUES (:a, :b)");
function commonInsert($a, $b) {
global $commonStmt;
$commonStmt->bindParam(':a', $a);
$commonStmt->bindParam(':b', $b);
$commonStmt->execute();
}
$pdo->beginTransaction();
if ($db_version < $file_version) {
commonInsert('a', 'b');
}
if ($db_version < $file_version) {
commonInsert('c', 'd');
}
if ($db_version < $file_version) {
$stmt = $pdo->prepare('INSERT ...');
$stmt->execute();
}
if ($db_version < $file_version) {
$pdo->query('INSERT');
}
// this will only get longer
$pdo->commit();
我可以在每次更新中添加调试语句(根据 Tamas 的建议),但这对于简单的完整性检查来说似乎很繁重。而且这个commonInsert
案子是最不可能需要它的案子。