PHP < 5.3.6 版 PDO 配合存取資料庫時的中文問題

// 連接資料庫
$link = new PDO("mysql:host={$db_host};dbname={$database};charset=utf8", $db_user, $db_pass);

按照 PDO 上的說明,連接資料庫時,可以設定 charset 指定使用 UTF-8,但是在舊的 CentOS 5 的 PHP 環境上,就是沒有用,原來是這個 charset 的參數,只有在 PHP 5.3.6 之後才有作用…

只要繼續用舊的方式,在連線建立好後,手動執行一下

$link->exec("set names utf8");

來指定所使用的編碼了,這樣中文字才不會出現亂碼

參考資料:
[1] http://stackoverflow.com/questions/4361459/php-pdo-charset-set-names

廣告

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: