我的 php 站点上有一些 SQL 查询,我一个接一个地执行。
我想像一个失败一样执行事务,然后不要继续插入其余的事务。
然而,在我的代码中实现事务后,我发现插入不再发生。
谁能指出我哪里出了问题以及如何解决我面临的问题?
$db = getConnection();
try{
/* Begin a transaction, turning off autocommit */
$db->beginTransaction();
$stmt = $db->prepare('INSERT INTO Orders VALUES(\'\', :ref, :date, :aid, 1)');
$stmt->bindParam(':ref', $referenceCode);
$stmt->bindParam(':date', $date);
$stmt->bindParam(':aid', $agentId);
$stmt->execute();
$stmt = $db->prepare('UPDATE Agents SET Agent_OrderCount = :cow WHERE Agent_Id = :aid');
$stmt->bindParam(':cow', $counter);
$stmt->bindParam(':aid', $agentId);
$stmt->execute();
$db->commit();
sendResponse(200, '{"Error":"0", "Message":"Successfully created order"}');
return;
}
catch(PDOException $e){
/* Recognize mistake and roll back changes */
$db->rollBack();
sendResponse(400, '{"Error":"3002", "Message":"'. $e->getMessage() .'"}');
return;
}
在插入事务代码之前,我可以向您保证,所有插入查询都运行良好。