我有一个脚本,能够建立一个冗长的预处理语句事务,我想要一种方法来打印即将执行的内容。
PDO中的class methods看起来都没有前途。
修改 这是一个(hacky)db升级脚本,作为一个健全性检查。 Devs应该在修改数据库时附加到脚本中。
$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
案例是最不可能需要它的案例。