在「PDO::MYSQL_ATTR_INIT_COMMAND」的 PDO 中「SET CHARACTER SET utf8」是否必要?
在PHP 和MySQL 中,「SET NAMES」 utf8」和「SET CHARACTER SET utf8」通常在使用UTF-8 編碼時使用。但是,當使用PDO 時,「PDO::MYdMANDR_INITSQL_ATTR_INITPAND ”參數將我們限制為單一查詢。因此,必須考慮在這種情況下是否需要“SET CHARACTER SET utf8”。
“SET CHARACTER SET utf8”對連接設定的影響
使用" “SET NAMES utf8”之後的“SET CHARACTER SET utf8”會將“character_set_connection”和“collation_connection”重置為資料庫的預設設定(“@@character_set_database”和“@@ collation_database”)。
區別在“SET NAMES”和“SET CHARACTER SET”之間
“SET NAMES x”影響:
“SET CHARACTER SET x”影響:
MySQL透過多個轉碼步驟處理查詢和結果:
將傳入查詢從「character_set_client」轉換為「character_set_connection」
如果資料庫的預設字元集不是UTF-8,使用「SET CHARACTER SET utf8」可能不完全啟用UTF-8 支援。會導致資料遺失。 MySQL伺服器變數可以避免每個連線上不必要的SET指令的效能開銷。
以上是PDO::MYSQL_ATTR_INIT_COMMAND 需要「SET CHARACTER SET utf8」嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!