私はGETを使用してパラメータを渡しています。データが英語の場合はmysqlに保存しますが、データが中国語の場合は何も挿入しません。PHP中国語の文字をMysqlに挿入できない
データのエンコードがutf-8であることが検出されました。私のMacBookを使用するとうまく動作しますが、動作していないことがわかりました。奇妙なことに何が悪いと思いますか?例えば
query("insert into Info values ('".$email."','".$_GET['name']."')");
これではない成功$name
は中国人である場合。私はecho $_GET['name']
を試して正常に表示され、howerverのデータはデータベースに挿入できないので空白です。データベース
あなたが渡したデータは、あなたのmysqlテーブルが扱うことができるエンコーディングではなく、文字列が切り詰められている可能性があります。どのエンコーディングに文字列があり、どのエンコーディングにmysqlクライアント接続があり、どのエンコーディングにデータベースの列があるのですか? – hakre
どのようなエラーメッセージが表示されますか? PDO接続を使用していますか? SQLは 'query(" INSERT INTO info(email)VALUES($ email) ")の行に沿っていなければなりません;また、このタイプのアプリケーションでGETを使用することを提案しません。フォーム?種類のすべての検証をバイパスします。 – NightMICU
MySQLサーバーへの接続を確立した直後に "SET NAMES UTF8"クエリを送信していますか? (あなたのデータはUTF8であると仮定し、そうでない場合はそうでなければなりません)そしてPHP文字列エンコーディングが正しく設定されていますか? '$ _GET ['name']'をUTF8のヘルプに変換する 'iconv'(PHPのマニュアルを参照)を使用していますか? – Daan