【发布时间】:2021-11-06 07:05:14
【问题描述】:
我有一个 PHP 函数,例如:
function insert_data($key, $value) {
$stmt = $dbh->prepare('INSERT INTO table (key, value) VALUES (:key, :value)');
$params = [
':key' => $key,
':value' => $value
];
$stmt->execute($params);
}
然后我在我的代码中多次调用这个函数:
$name = insert_data('Name', 'Joe');
$email = insert_data('Email', 'example@example.com');
但是,我想确保如果一个事务失败,它不会提交其他所有事务。将放置 $dbh->beginTransaction();在我调用函数和 $dbh->commit();功能工作后,还是我需要做其他事情?
【问题讨论】:
-
作为旁注:考虑在另一个函数中准备你的语句,然后将它传递给
insert_data。这是准备好的语句的一部分 - 你只需要准备一次,然后你可以用不同的参数多次运行它们。它也会保存传递给 SQL 服务器的查询。