いつもお世話になっております。
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")
上記でとりあえず文字化けは解消されましたが、データベースの方に日本語文字列のみ登録されなくなりました。
上記を記述しないと文字化けとなってしまいます。
『一難去って、また一難』と言った感じです・・・
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ランキング
-
MySQL4.1の日本語化
-
MySQL 文字化けについて(PHP)
-
MySQL(UTF-8)で ~ が文字化け...
-
接続ができません
-
SQLのVARCHARとVARCHAR2の違い
-
like句を使って日本語を検索す...
-
副問合せにLIKE文を使う方法は...
-
VBAで変数内に保持された二次配...
-
RPMのmysqlとmysql-serverの違い
-
ODP.NETのバージョン確認
-
「・」中点が入った文字列を条...
-
.sqlのファイルをそのままコマ...
-
検索機能
-
Float型の時の計算結果がおかしい
-
ERROR 1045 (28000) (using pas...
-
postgreSQLのデータ型
-
ACCESSとXサーバーをODBCで接続...
-
プライマリーキーの昇順でソー...
-
PDFをDBに格納する/取り出すには?
-
MySQLにリモートホストから接続...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
php・Mysql Like文で日本語が使...
-
MYSQLで日本語が入力できない
-
MySQL 文字化けについて(PHP)
-
UTF-8にしても文字化けが直らない
-
MYSQLでタイ語
-
MAMP MySQl でコマンドプロンプ...
-
mysqldumpでリストアし一部外字...
-
DB内の日本語データがPHPで取得...
-
さくらのレンタルサーバで文字...
-
xamppのMySQLの文字化け
-
MySQL5.1の文字列サイズは文字...
-
mysql>status で
-
「set names utf8;」という構文...
-
MySQL(UTF-8)で ~ が文字化け...
-
設定が間違っていないのに文字...
-
あと、MySQLの文字コードはutf8...
-
xampp の mysql 文字化け
-
xampp mysql5.0.51の文字化けに...
-
php $dsn
-
phpmyadminで編集すると文字化...
おすすめ情報