• 締切済み

【Mysql】全角文字がDBに追加されません。

アンケートサイト制作をしています。 1、htmlファイル <アンケート回答ページ >↓ 2、phpファイル データをMySQLデータベースに書き込み ↓ 3、phpファイル MySQLのテーブルから全体を読み出し の3つのファイルから構成しています。 データ登録画面のテキストで全角文字を入れても データベースに新しいデータが追加されません。 半角英数字abcや123であれば、新しいデータが追加されます。 どうしたら全角文字も追加させられるのでしょうか。 ファイルの一部は… <?php mb_language('ja'); mb_internal_encoding('EUC-JP'); extract($_POST); // キャリア判別 $user_career = $_SERVER['HTTP_USER_AGENT']; $user=$_POST['●●●']; $q1=$_POST['q1']; $q2=$_POST['q2']; $q3=$_POST['q3']; $q4=$_POST['q4']; etc です。 原因が全くわかりません。 ちなみにキャラクタセットはutf8です。 文字化け等はありません。

みんなの回答

回答No.2

うーーん。 考えてみればhtmlがutf8でmysqlがutf8であればphpファイルの文字コードがなんであれ、セットできるはずだけどなー。(もちろん、リテラルとDBの文字列比較とかは問題あり。) ちょっと色々気になる点を羅列してみます。 ・mb_internal_encoding('EUC-JP');をコメントアウトしてもだめですか? ・mysqlに直接全角でinsertできますか? ・create database [dbname] character set utf8;で作成されていますか? ・CREATE TABLE [tablename](...) DEFAULT CHARSET=utf8 ですか? ・php.iniの中は [mbstring] mbstring.language = Japanese になっていますか?

回答No.1

mb_internal_encoding('EUC-JP');が原因では? euc-jpで作るなら 全角文字が入る変数が$_POST['zenkaku']ならば mb_convert_encoding($_POST['zenkaku'], "euc-jp", "utf-8")としてみてはいかがでしょう。

michi7128
質問者

補足

早急なありがとうございます。 試してみました。 でもダメみたいです(;へ;) ほかに回避できる操作ってありますか? ちなみに記載し忘れましたが windows OS VISTA PHP5.2 DB mysql 返答お待ちしております。

関連するQ&A