ホームページ >バックエンド開発 >PHPチュートリアル >出力できないあいまい検索条件などの追加ポイント
出力できないあいまいクエリ条件などを追加して、オンラインで待機してください。 !ボーナスポイント
$conn = mysql_connect("localhost","root","");
if (!$conn){
die("接続先データベースの失敗: " .mysql_error());
} else {
echo "データベースに正常に接続しました! ";
}
mysql_query("set Character set utf8");
$ yes=mysql_select_db("ORG7188", $conn);
if (!$yes){
die("データベースへの接続に失敗しました:");
} else {
echo "データベースに正常に接続しました! ";
}
$sql="SELECT * FROM 188_line where ts like '%San Gorges%' " // where ステートメントがない場合は、内容を出力できます
$socre=mysql_query($sql,$conn );
while($row = mysql_fetch_array($socre)){
echo $row[ts];
}
?>
データベースは次のとおりです
-----解決策---------- -----------
バイナリ '%中文%' のようなフィールドが含まれるテーブルから * を選択
------解決策---------
PHP コードのエンコーディングは何ですか?コード、データベース、ブラウザは UTF-8 に統一されています。
------解決策----------------------
こうして見てください
... .
$sql="SELECT * FROM 188_line where ts like '%San Gorges%' " // where ステートメントがない場合は、内容を出力できます
die(base64_encode($sql) ); //追加 この文の結果を投稿します
$socre=mysql_query($sql,$conn);
------解決策----------------------
MySQL で、中国語でソートと検索を行う漢字のソートや検索結果が間違っている。
この状況は MySQL の多くのバージョンで存在します。この問題が解決されない場合、MySQL は実際に中国語を処理できなくなります。
この問題の理由は次のとおりです。MySQL は文字列のクエリ時に大文字と小文字が区別されないため、通常、ISO-8859 文字セットがデフォルトの文字セットとして使用されるため、比較プロセス中に中国語のエンコードが行われます。文字の大文字と小文字の変換により、この動作が発生します。
方法 1:
解決策は、中国語を含むフィールドに「binary」属性を追加してバイナリ比較を行うことです。たとえば、「name char(10)」を「name char」に変更します。 (10 )バイナリ」。
方法 2: ソース コードを使用して MySQL をコンパイルする場合、MySQL のコンパイル時に --with--charset=gbk パラメータを使用できるため、MySQL は中国語の検索と並べ替えを直接サポートします。
------解決策---------