我爲我正在努力的一個項目創建了一個簡單的MySQLi類,使它更容易和更簡化,以便從數據庫中提取並推送到數據庫。 (也可以更熟悉PHP中的OOP)PHP如何檢查MySQLi查詢是否需要關閉?
我不斷遇到的一個問題是努力使其儘可能高效。我嘗試關閉/釋放每個查詢/語句/結果集。在此過程中,我得到以下錯誤很多:
Warning: mysqli_result::close(): Couldn't fetch mysqli_result
我覺得我得到了上述特別是因爲它試圖兩次關閉查詢連勝。
目前,我的課程可以做好準備和準備不足的陳述。所以我嘗試關閉2個地方的查詢/語句。如果我已經準備好一份聲明,我會在準備一份聲明時檢查一下,如果是這樣的話,我需要先關閉一個聲明,然後再做一個新聲明,最後再在課堂的析構函數中進行。
我意識到我可以關閉查詢/語句後,我拉和存儲的結果,但這似乎是混亂的原因有幾個。對於一個它刪除了重複使用準備好的語句的可能性。以及不允許我在運行後查詢某些查詢的相關信息,例如受影響的行等。
我知道我可以只爲每個查詢存儲這些信息,但不過它似乎正確的方式去解決這個問題將關閉/釋放查詢/語句,如果我需要做另一個,並且再次在腳本的末尾。
我已經試過環顧四周,閱讀我應該如何妥善處理這個任務,但我一直未能拿出任何東西。
所以我的問題是,有無論如何測試是否需要關閉或釋放查詢或語句?還是有更好的方法我應該試圖解決這個問題?
感謝您提供任何幫助或見解。
這似乎有點真實。我正在搞一些測試代碼,在執行完後執行'var_dump',取出後執行另一個測試代碼。他們打印相同的東西。當關閉後執行'var_dump'時,雖然你得到'屬性訪問不被允許',所以它顯然做了一些不同的事情。雖然如果它有什麼不同的效率明智的問題呢? 另外,當我將查詢限制爲1行(例如'LIMIT 0,1')時,它自己調用$ stmt-> fetch()不會關閉語句。雖然如果我做'while'循環和'echo'來確認只有一行,它會關閉它。 任何想法? – anomareh 2009-12-19 08:23:39