![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
いつもお世話になっております。
PHPを使用してMySQLからデータを出し入れする際に文字化けが発生し原因がわからず、大変困っております。
MySQL 4.1.18(クライアント 4.1.21)
MySQL文字セット UTF-8 Unicode (utf8)
様々なHPを検索して、下記のような一文を入れれば大丈夫と思ったのですが、それでも文字化けは改善されませんでした。
mysql_query("SET NAMES ujis");
上記文はmysql_connectの直後に記述しております。
INSERT文、SELECT文どちらに不備があるのかわかりません。
ご教授お願い致します。
記述プログラム:(INSERT文)
/*********************************
* MySQL接続
********************************/
// DB Connect
$db = db_connect();
// DB Select
select_db($db);
// Set Names
mysql_query("SET NAMES ujis");
/*********************************
* INSERT文
********************************/
$sql = "insert into T_YOYAKU values ('1','A','1','あいうえお')";
mysql_query($sql)
省略・・・
記述プログラム:(SELECT文)
/*********************************
* MySQL接続
********************************/
// DB Connect
$db = db_connect();
// DB Select
select_db($db);
// Set Names
mysql_query("SET NAMES ujis");
/*********************************
* INSERT文
********************************/
$sql = "select * from T_YOYAKU";
if ( $rs = mysql_query($sql) ) {
No.4ベストアンサー
- 回答日時:
Insert文記述スクリプト・ファイルをutf8で保存するか、
utf8変換した文字列をInsert文に組み込むか、
で良いと思います。
文字コードを処理毎に変える必要が生じます。
DBへInsertする時は、DBに合わせ、結果出力(例えばブラウザなど)する時は、HTMLのエンコードに合わせますね。
自分で全て設計できる場合は、全環境を同じ文字コードにしてしまうのも良いと思います。
ありがとうございます。
問題を解決することができました。
問い合わせを行うSQLをutf8に変換をしていなかったため問題が発生していたようです。
本当にありがとうございました。
No.3
- 回答日時:
mysql_query("SET NAMES ujis")
を
mysql_query("SET NAMES utf8")
か、
my.iniに
init-connect=SET NAMES utf8
を付け加えるかで、イケルと思います。
この回答への補足
mysql_query("SET NAMES utf8")
上記でとりあえず文字化けは解消されましたが、データベースの方に日本語文字列のみ登録されなくなりました。
上記を記述しないと文字化けとなってしまいます。
『一難去って、また一難』と言った感じです・・・
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_09.png?e8efa67)
No.2
- 回答日時:
MySQLの設定ファイルの文字コードの設定が問題ではないでしょうか?
私も同じように文字化けしておりましたが、下記のように設定したところ文字化けが解決しました。★マークの部分を環境に合わせてチェックしてみてください。
--------------
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
default-character-set=ujis ←★
init_connect="SET NAMES ujis" ←★
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
[mysql.server]
user=mysql
basedir=/var/lib
default-character-set=ujis ←★
[mysqld_safe]
err-log=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
[mysqldump]
default-character-set=ujis ←★
[mysql]
default-character-set=ujis ←★
--------------
mysqldを再起動後、確認してみてください。
的外れでしたらごめんなさい。
No.1
- 回答日時:
コマンドでの方法は分かりませんが
下記の方法で直った記憶があります。
1. "//\MySQL\MySQL Server 4.1\my.ini"を開く
*デフォルト設定のままであれば"C:\Program Files\MySQL\MySQL Server 4.1\my.ini"
2. my.ini内の[mysqld]以下に下記一文を追加する。
default-character-set=utf8
skip-character-set-client-handshake
3. 上書き保存を行い、MySQLのサービスを再起動する。
*コマンドプロンプトでの再起動コマンド
停止
net stop mysql
起動
net start mysql
4. MySQLに接続し、『 status; 』を確認する。
5. 以下のステータスに変更されているかを確認する。
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- PHP php エラー 2 2022/10/23 16:43
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PHP ここでの ②if($su_d<>"")の比較演算子 を使う理由は 1 2022/03/26 02:33
- MySQL mysqlで INSERT と SELECTの用途は 1 2022/04/01 00:45
- MySQL mysqlがインストールされているのかどうか 1 2023/06/05 14:19
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- PHP PHP MySQLに画像を直接保存 2 2022/06/05 11:50
- MySQL mysqlがインストールされているのかわかりません 1 2023/06/05 02:26
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
テーブル名が可変の場合のクエ...
-
【初歩】ラジオボタンをつかっ...
-
次の時間帯の勝率の合計を求め...
-
本を見ながらPHPを勉強している...
-
mysqlがインストールされている...
-
データベースの接続に失敗して...
-
データベースについて
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
utf8bomとutf8mb4の違いがいま...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php・Mysql Like文で日本語が使...
-
MYSQLで日本語が入力できない
-
MySQL 文字化けについて(PHP)
-
UTF-8にしても文字化けが直らない
-
MYSQLでタイ語
-
MAMP MySQl でコマンドプロンプ...
-
DB内の日本語データがPHPで取得...
-
mysqldumpでリストアし一部外字...
-
さくらのレンタルサーバで文字...
-
mysql>status で
-
xamppのMySQLの文字化け
-
「set names utf8;」という構文...
-
MySQL5.1の文字列サイズは文字...
-
MySQL(UTF-8)で ~ が文字化け...
-
設定が間違っていないのに文字...
-
phpmyadminで編集すると文字化...
-
xampp の mysql 文字化け
-
あと、MySQLの文字コードはutf8...
-
テーブルに日本語が登録できない
-
日本語をinsert時に文字化け
おすすめ情報