2016-05-13 50 views
0

我有一個PHP文件,它查詢外部API並使用循環內檢索的細節填充我的數據庫。我使用mysqli從php連接到mysql。但是記錄不會顯示在目標表中。替換在MySQL查詢日誌中看到的查詢,但沒有記錄實際顯示在表中

替換查詢顯示在mysql_query_log中。如果我將它們從查詢日誌複製到mysql客戶端,它們將執行並顯示記錄。

腳本中有2個循環。第一個循環的替換命令按預期執行。

下面是如何調用這些示例。

$cstmt = $dbConn -> prepare($sql); 
if ($cstmt) 
{ 
    call_user_func_array(array($cstmt, 'bind_param'),refValues($bindvaluearr)); 
    if ($cstmt -> execute()) 
       { 
         throw new Exception($cstmt->error . "---" . $dbConn->error); 
       } 
} 

我正在發佈一個明確的提交,並且也出現在查詢日誌中。

任何線索,關於尋找什麼的想法?

+0

你需要提供代碼。請參閱[如何提出一個好問題](http://stackoverflow.com/help/how-to-ask)和[mcve] – Tibrogargan

+0

我已經添加了一個示例,儘管我不想用語法分散repliers。由於同一段代碼在預期的一個地方工作,甚至在第二個實例中,查詢在查詢日誌中按預期顯示,所以我覺得它是一個更通用的問題 – mvinayakam

+0

您正在插入行一個事務,然後斷開而不提交事務,也許? –

回答

0

好的,得到了​​我的問題的答案。

事務中的一個替換查詢未包含具有非空屬性的字段。這失敗了,可能會引起回滾。

+0

「推測」?那麼你的代碼沒有錯誤報告? –

+0

不,我確實有,但也沒有報告錯誤。我沒有將它添加到上面的示例代碼中以保持簡短。 'if($ cstmt) { call_user_func_array(array($ cstmt,'bind_param'),refValues($ bindvaluearr));如果($ cstmt - > execute()) { }拋出新的異常($ cstmt-> error。「---」。$ dbConn-> error); } }' – mvinayakam

+0

編輯了原始文章中的代碼,因爲評論部分中的代碼不太清晰。 – mvinayakam