みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

phpMyAdminで文字化け

下記の質問者と同じ状態「UTF8のPHPコードから日本語をINSERTするとphpMyAdmin上で文字化けしてしまう」になっています。
http://oshiete.nikkeibp.co.jp/qa3749280.html?ans_count_asc=1

そこでinsertの前に

   $sql = 'set names utf-8';
   mysql_query($sql);

を挿入したいのですが、どこにどのように挿入したらいいのかわかりません。私の場合は以下のどこに挿入すればいいのでしょうか?

// SQL実行
function db_query($sql, $conn) {
$res = mysql_query($sql, $conn);
return $res;
}

~中略~

$sql = "INSERT INTO table1 (";
$sql .= " name, ";
$sql .= " address, ";
$sql .= " date ";
$sql .= ") VALUES (";
$sql .= "'" . $name . "',";
$sql .= "'" . $address . "',";
$sql .= "'" . $date . "'";
$sql .= ")";

$res = db_query($sql, $conn);
if ($res) {
return "<p>成功</p>";
}
else {
return "<p>失敗</p>";
}

投稿日時 - 2008-04-30 18:13:43

QNo.3987849

困ってます

質問者が選んだベストアンサー

>色々と試しているのですが、うまく行きません。

どう試されているんでしょうか・・。ANo.1の方が書かれたように「接続直後」でもいいですし、INSERTの「SQLを投げる直前」でも有効だと思います。なのでうまくいかないケースを考える方が難しいです。

もちろん$sqlに他の文字列をセットしていると困るので、例示された書き方ではなく

   mysql_query('set names utf-8');

と単独で書く方がお勧めですけど。

投稿日時 - 2008-04-30 19:18:19

補足

どうもありがとうございます。
$sql = "INSERT INTO table1 (";
の前に
mysql_query('set names utf-8');
を挿入してみたのですが、phpmyadminでみると相変わらず日本語が文字化けしてしまいます。
文字化けの原因はset names utf-8ではないということでしょうか・・・

投稿日時 - 2008-04-30 19:25:49

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

接続時にセットで一緒にやっちゃうといいと思いますよ。

投稿日時 - 2008-04-30 18:32:41

補足

色々と試しているのですが、うまく行きません。どこの行にどのように追加したらいいのでしょうか?

投稿日時 - 2008-04-30 18:45:58