使用PDO 從MySQL 擷取數值資料類型
使用PDO 和MySQL 時,您可能會遇到從資料庫擷取的數值為作為資料庫字串而不是數字資料類型傳回。這種差異可能是由於 PHP 資料庫物件 (PDO) 擴充的預設行為造成的。
為什麼要用字串而不是數字?
不幸的是,這種情況相對常見查詢資料庫時接收字串而不是數字。發生這種情況是因為 PDO 擴充功能通常會將數值從資料庫轉換為字串,以確保與所有支援的資料庫驅動程式的兼容性。
停用字串轉換
以防止 PDO 字串化數值,您可以修改 PDO 屬性 PDO::ATTR_EMULATE_PREPARES。透過將此屬性設為 false,您可以停用預先準備語句模擬並允許 MySQL 傳回本機資料類型,包括數位類型。
$dsn = 'mysql:dbname=database;host=localhost'; $pdo = new PDO($dsn, $user, $pass, array( PDO::ATTR_EMULATE_PREPARES => false ));
PDO::ATTR_STRINGIFY_FETCHES
PDO::ATTR_STRINGIFY_FETCHES 屬性不適用於 MySQL PDO 驅動程式。此屬性適用於支援傳回字串而不是本機資料類型的其他資料庫驅動程式。
因此,透過停用 PDO 的預先準備語句模擬,您可以確保數值會作為本機資料類型傳回,從而防止字串化並允許您正確處理資料。
以上是如何使用 PDO 從 MySQL 檢索數位資料類型而不進行字串轉換?的詳細內容。更多資訊請關注PHP中文網其他相關文章!