「SET CHARACTER SET utf8」指令有意義嗎?
在 PHP 中使用 MySQL 和 UTF-8 時,已經習慣了使用「SET NAMES utf8」和「SET CHARACTER SET utf8」指令。但是,當使用 PDO 的 PDO::MYSQL_ATTR_INIT_COMMAND 參數時,僅支援單一查詢。這就提出了一個問題:「SET CHARACTER SET utf8」到底有沒有必要?
深入研究技術細節
「SET NAMES utf8」指令設定各種MySQL 字元集-相關係統變數:
另一方面,「SET CHARACTER SET utf8」影響只有兩個變數:
MySQL 對傳入查詢和結果集進行多步驟編碼/轉碼過程:
查詢最初被視為在character_set_client中編碼。自從「SET CHARACTER」 SET utf8」將character_set_connection重設為資料庫預設值,這可能會導致資料遺失,特別是如果資料庫預設值不是UTF-8。
結論
設定MySQL 伺服器時變數正確地避免了每個連接上額外查詢的效能開銷,通常建議使用「SET NAMES ...」來確保正確的字符集支援。
以上是## 'SET CHARACTER SET utf8” 在 MySQL 連線中是否有真正的價值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!