2013-02-20 8 views
6

メンバーテーブルに挿入する登録フォームがあり、照合順序はutf8_general_ciで、PHPスクリプトでSET NAMES utf8を使用します。ここで問題は解決しました。純粋以外の文字列を挿入できませんアルファベット、私は 'Hélène'フォームフィールドで、SQLクエリを実行した後、私は私のdbテーブルをチェックし、フィールドは 'H'として挿入されます、アルファベットの残りの文字列は、後ろにé, řなどのMySQL特別な文字を挿入します

誰かが助けてくれますか?ありがとう。

解決

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 

mysql_query("SET NAMES utf8"); 

2本のライン上には、ウェブページ上のデータベースと出力への入力を受け入れるように重要な部分です。

アドバイスをいただき、ありがとうございました。

+3

エンコーディングおよびこれら二つの偉大な文章での取り扱いについての記事を読むと、あなたは確かに問題があります:http://kunststube.net/frontback/とhttp://kunststube.net/encoding/を。 –

+0

DBテーブルのエンコーディングとは何ですか?それもutf-8であることを確認してください。また、スクリプトが正しい文字列を受け取っていることを確認してください。フォームデータをエコーし​​てからDBに挿入します。 (検証の後。)ここ –

+0

ルック液[MySQLでSET名UTF8?] [1] [1]:http://stackoverflow.com/questions/2159434/set-names-utf8-in- mysql – sanj

答えて

1

あなたはエンコーディングUTF8

CREATE SCHEMA `youdatabasename` DEFAULT CHARACTER SET utf8; 
+0

これは答えではありません。 –

+0

ああそれは私がエンコーディングに問題がないことを確認するために使用するものです:)代わりにコメントにする必要がありますか? –

+0

これでは十分ではありません。 –

2

を使用してデータベースを作成することを確認してくださいは、エンコード後にデータを挿入しよう。エンコードするにはmysql_real_escape_string()を試してください。 insertクエリを実行します。

EDIT: -

この回答は1年前に投稿されました。今すぐmysql_real_escape_string()はPHPのためにmysqli :: real_escape_stringこのフォーマットで動作します。あなたはあなたのために動作しませんので、多くの異なる文字セットのコーディングについてかにhtmlentitiesも心配したくない場合は、ここで代替をhere

1

をチェックしてください。 を私はmysqliののDB接続(およびPHPV5)書き込み用のフォームのポストを使用しました/ MySQl DBに挿入する。

$Notes = $_POST['Notes']; //can be text input or textarea. 

$charset = mysqli_character_set_name($link); //only works for mysqli DB connection 
printf ("To check your character set but not necessary %s\n",$charset); 

$Notes = str_replace('"', '&quot;', $Notes); //double quotes for mailto: emails. 
$von = array("ä","ö","ü","ß","Ä","Ö","Ü"," ","é"); //to correct double whitepaces as well 
$zu = array("&auml;","&ouml;","&uuml;","&szlig;","&Auml;","&Ouml;","&Uuml;","&nbsp;","&#233;"); 
$Notes = str_replace($von, $zu, $Notes); 
echo " Notes:".$Notes."<br>" ; 
$Notes = mysqli_real_escape_string($link, $Notes); //for recommended mysqli DB connection. 
//$Notes = mysql_real_escape_string($Notes); //for old deprecated mysql DB connection. 

// mysqli_real_escape_string Escapes special characters in a string for use in an SQL statement 

echo " Notes:".$Notes ; //ready for inserting 
+0

内容を表示する場合:この行はヘッダに表示され、面白い文字が表示された場合は KarlosFontana

+0

mysqli_real_escape_stringそこに完全に良いプレースホルダシステムがある場合に使用されます。 – tadman

関連する問題