
PHP5、MySQL5を使用しています。最近始めたばかりで参考書を購入して勉強しています。
購入した参考書には「PHPとMySQLの連携」という章があり読んでいくと、MySQL(コマンドライン)に日本語が表示されていました。
この本はMyAdminなどを使っていないので、PHPでフォームを作成してそれで日本語をMySQLに送信しているのだと思いやってみたのですが、データが入りません。英数字なら入るのですが、日本語になると入ってくれません。
設定が悪いのでしょうかそれとも私の書き方がいけないのでしょうか。
$ins = "INSERT INTO name VALUES('あじあ')";
$mq = mysql_query($ins);
このように書いたのですができませんでした。すみませんが、よろしくお願いします。
No.3ベストアンサー
- 回答日時:
#2です。
エラー出力はどうなっていますか?
echo mysql_error();
> カラム型はVARCHARにしてあります。
カラム長は大丈夫ですよね?マルチバイト文字ですので注意して下さい。
> クライアントの文字コードというと、METAタグで設定しているやつですか??
METAタグで指定するのは出力したときのブラウザに対してです。
PHPの文字コードは、
1. PHPファイルの文字コード(エディタで指定)
2. PHPの内部文字コード(php.ini等の環境設定の他、mb_internal_encoding()で指定可能)
3. いま扱っている文字コード(ファイル内で書いている場合は1.で指定したエンコード、DBから引っ張ってきたり、フォームで送信された場合はそこで指定された文字コード)
4. HTMLを出力するときの文字コード(先ほどのMETAタグ等で指定するものです)
等があります。いっぽう、MySQLでは、
1. サーバの基本文字コード(サーバの設定)
2. 記録する(されている)文字のエンコード(実際に記録しているデータのエンコード、必ずしも1と一致している訳ではありません)
3. クライアントの文字コード(PHPから取り扱う場合は1.のファイルの文字コードや2.の内部文字コードを指定します)
等があります。
うまく行っている場合はどうってことありませんが、うまく行かない場合はこれらの文字コードを意識しないといけません。
mb_inernal_encoding()、mb_detect_encoding()、mb_convert_encodign()等で指定したり検出したりしてみてください。
No.2
- 回答日時:
> $ins = "INSERT INTO name VALUES('あじあ')";
> $mq = mysql_query($ins);
クエリはこれで大丈夫だと思います。
mysql_errorでエラーを確認してみて下さい。
echo mysql_error();
ところでnameのカラムの型は何になっていますか?int型等、テキストが入らない型になっている可能性が高いですが。
また、環境によってはMySQL5では接続時にクライアントの文字コードをセットする必要があるかもしれません。
mysql_query("SET NAMES sjis");//SJISの場合
のようなクエリをまず発行しなければならない可能性もあります。
参考まで。
ご回答ありがとうございます。
カラム型はVARCHARにしてあります。クライアントの文字コードというと、METAタグで設定しているやつですか??
初歩的で申し訳ありません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MAMPで80ポートが使用されている...
-
mysqlがインストールされている...
-
SQLです教えてくださいお願いし...
-
下記の問合せを行うクエリを、P...
-
下の画像はSQLの4大命令の性質...
-
#1062 - '0' は索引 'PRIMARY' ...
-
「重複を間引いた数」をcountし...
-
SQLiteについて
-
SQLで抽出してCSVで書き出した...
-
同一日に複数レコードがある場...
-
MAMP 99ドル約1.6万円 高い...
-
あってますか?SQL
-
WHERE `年月日` = '晴' OR `年...
-
SQLです教えてくださいお願いし...
-
SQLを作ったのですがうまくいき...
-
(初心者)MySQLやmaraDBで、crea...
-
SQLです教えてくださいお願いし...
-
SQLです教えてくださいお願いし...
-
SQLです教えてください。
-
SQLです教えてくださいお願いし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MySQLカラム名は日本語と英数字...
-
文字コードMS932(Windows-31J...
-
日本語TSVファイルのLOAD DATA ...
-
存在しているファイルがロード...
-
my sqlで文字化け
-
日本語のデータがインポートで...
-
SQL Server のキャラクターセッ...
-
mysqlがインストールされている...
-
ODP.NETのバージョン確認
-
副問合せにLIKE文を使う方法は...
-
SQLのVARCHARとVARCHAR2の違い
-
エクセルで連勤チェックをした...
-
ERROR 1045 (28000) (using pas...
-
旧filemakerで和暦(令和など)...
-
列数が多いと結果が行単位に改...
-
Usage: \\.<filename> | sourc...
-
VBAで変数内に保持された二次配...
-
INT型は金額の型に使用するべき...
-
like句を使って日本語を検索す...
-
mysqlへのインポート処理がうま...
おすすめ情報