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