2012-01-09 23 views
0

我的一個十分不解和累人的問題:API有時連接到mysql不執行查詢

我開發了一個API來讓別人從我的數據庫中提取信息。我的服務器收集POST信息,寫出一個mysql查詢,執行查詢[$ query = mysql_query($ string,$ connection);],並返回結果(非常簡單)。

問題是,有時(每5次嘗試中就說1次)沒有信息返回。我的服務器日誌說,資源($查詢)是布爾值(因此沒有結果)。我的服務器每次都收到來自API遠程用戶的信息,問題似乎是我的查詢有時候並沒有執行...

爲什麼會發生這種情況?

它是一個MySQL性能問題?在我自己的頁面上查詢(即不是來自API)的查詢,我似乎從未遇到任何性能問題!

請幫忙...

+0

你有沒有做過任何嘗試調試,如日誌記錄值,查詢字符串,你正在建設等? – 2012-01-09 23:17:11

回答

1

您的查詢可能失敗。試試這樣做:

mysql_query($string, $conn)or die(mysql_error()); 

如果查詢生成異常/錯誤,它將停止腳本並顯示MySQL錯誤。使用該錯誤,您可以修復您的查詢,以便一切最終都能正常工作。

順便說一下,您使用的是$ string,但使用$ builtQuery可能更好,因爲如果您稍後需要編輯腳本,「string」可能會引起混淆。

問候。

+0

感謝上帝!有時最明顯的解決方案是最容易被忽視的!我嘗試了其他所有測試,但不是這個「或死(mysql_error())」測試。問題是沒有mysql_select_db(---,---)。有時它執行查詢,有時它沒有。謝謝 – YWSW 2012-01-10 17:15:26

+0

沒問題。實際上,mysql_error()幾乎總是可以修復任何MySQL相關的問題。它給你一個很好的解釋發生了什麼。如果它不輸出任何內容,那麼你知道這不是MySQL失敗。總是得心應手:-) – Robbietjuh 2012-01-10 21:32:07