0
我在我的php網站上有幾個SQL查詢,我一個接一個地執行。實施BeginTransaction後SQL INSERT問題
我想過如果一個失敗就實現事務,那麼不要繼續插入其他事務。
然而,在我的代碼中實現事務後,我發現插入不再發生。
任何人都可以指出我要出錯的地方,以及我如何解決我所面臨的問題?
$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;
}
在插入事務代碼之前,我可以向你保證所有的插入查詢都能正常工作。
感謝您的留言,我會立即進行更改。 同時你能告訴我你應該問服務器,而不是在這裏在stackoverflow? – Pavan 2013-02-16 14:49:21