未分類 過去記事

[php]pearとmysqlで文字化け対策

MySQLにPEAR::DBを使用して、データ追加を行ったら、文字化けした際のメモ

MySQL:5.5
MySQLの文字セット:utf-8
さくらインターネット使用

以下、簡単なソースです

[php]
require_once 'DB.php';

$dsn = 'mysqli://ユーザ名:パスワード@ホスト名/DB名';

$db = DB::connect($dsn);
if (PEAR::isError($db)) {
die($db->getMessage());
}

$db->query('SET NAMES utf8');
if (PEAR::isError($db)) {
die($db->getMessage());
}

$table_name = 'users';
$fields_values = array(
'name' => $name,
'display_name' => $disp
);

$res = $db->autoExecute($table_name, $fields_values, DB_AUTOQUERY_INSERT);

if (PEAR::isError($res)) {
die($res->getMessage());
}

$db->disconnect();
[/php]

普通のサンプルだとinsert文を使って実行しますが、autoExecの方が、挿入カラムとパラメータのマッピングが分かり易くて好きです
たまにカンマひとつズレてて、キィーーーーッ!!となりますしw

で、肝心な肝は
[php]
$db->query('SET NAMES utf8');
[/php]

の部分
恐ろしくあっさりできましたけど、実に悩んだのは"utf8"というところ

最初
[php]
$db->query('SET NAMES utf-8');
[/php]

って、ずっと書いてておかしいなーと思ってたんですが...

-未分類, 過去記事
-, , ,

© 2020 shimashima.com