PDO 的字串化數值檢索:揭開神秘面紗
在將PDO 與MySQL 一起使用時,您可能遇到了一個奇怪的情況:從資料庫僅以字串表示形式而不是數字類型結束。讓我們深入研究如何解決這個困境。
失敗的屬性修改
PDO 的屬性範圍內有 PDO::ATTR_STRINGIFY_FETCHES,據說它可以解決這個問題。然而,嘗試為 MySQL 驅動程式修改它通常會產生錯誤訊息。
數字字串:規範?
令人驚訝的是,從資料庫查詢中取得字串而不是數字是比你想像的更常見。這種行為是由於 PDO 模擬準備語句的預設設定所造成的。
解決方案:不進行模擬的準備語句
解決這一困境的關鍵在於禁用模擬準備好的語句。操作方法如下:
new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ))
關閉模擬,您可以允許 mysqlnd(在 PHP 5.3 及更高版本中提供)從準備好的語句傳回本機資料類型,包括整數作為數值。
值得補充的
值得一提的是,使用準備好的語句是一種無論數字檢索問題如何,強烈建議這樣做。它不僅增強了程式碼安全性,而且還可能提高效能。因此,請將此解決方案視為您尋求高效資料處理的一線希望。
以上是為什麼我的 PDO MySQL 整數會檢索字串,我該如何修復它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!