下面的php代码运行一个查询,我得到$res = true
这意味着查询应该运行
我还检查了PDO对象的运行状况,以确保并发现其他查询正确运行
也没有抓到任何例外。已经没有办法解决这个问题。
function insertPaypalSavedSanity($udi, $isPaypalSaved){
global $DBH;
try {
$sql = "INSERT INTO sanity(user_id, saved_paypal_used_previously) VALUES(:user_id,:sv) ON DUPLICATE KEY UPDATE saved_paypal_used_previously=:sv";
$sqlcon = $DBH->prepare($sql);
$res = $sqlcon->execute(array(
'user_id'=>$_SESSION['userID'],
'sv'=>$isPaypalSaved));//$res is true after executing the query
$x = 1;// I put the debugger at this point and run other queries with my PDO object($DBH)
} catch(Exception $e)
{
logger ("sanity queries",$e->getMessage());
}
}
答案 0 :(得分:0)
通过将start transaction添加到语句的开头并提交到语句的结尾来解决这个问题。我仍然不知道为什么会这样。