0

クライアントページ:

<head>
<meta http-equiv="Catchup Scheduler" content="text/html; charset=UTF-8">
</head>

<body>
<form action="next.php" method="POST" >
<input type="text" name="programme_name"></br>
<input type="submit">
</form>
</body>

サーバーページ:

$name = $_POST['programme_name'];

mysql_query("SET character_set_client=utf8",$con);
mysql_query("SET character_set_connection=utf8", $con);
mysql_query("SET character_set_results=utf8", $con);

$query = "Select * from programme where Programme_name Like '%".$name."'";

問題は、データベースに中国語のテキストがあるにもかかわらず、クエリが常に を返すことZERO(none)です。POST 値$nameを出力すると、中国語の文字で正しいテキストが表示されます。

しかし、次のような変数に格納すると:

$name= "valuevalue ( 官话 )";
$query = "Select * from programme where Programme_name Like '%".$name."'";

それは結果を生み出します。これはどうしてですか、POST ではそうではありませんが、静的な値の宣言ではそうでしょうか? 私のOSはXP SP3です。

POST にある場合、漢字の「内部」表現に問題はありますか? 中国語の表現をサポートするには、OS で何かを設定する必要がありますか?

4

1 に答える 1

0

エスケープされていない未加工の入力を mySQL に供給しています。

入力文字列で使用mysql_real_escape_stringするか、PDO を使用してデータベースと通信します。

于 2012-05-20T22:47:36.777 に答える