1

データベースでクエリを実行したい:

$query="SELECT field1 from table_name where field2 like '%".$_REQUEST['var1']."%'";

ページに500 内部サーバー エラーが表示されています。

デバッグ時に$queryをエコーし​​ます。それは次のようでした:

SELECT field1 from table_name where field2 like 'value_of_var1%'

最初のパーセント記号はどこに消えましたか? インターネットで検索したところ、パーセント記号をエスケープするには二重パーセント記号 (%%) を入力する必要があるとのことでした。もしそうなら、なぜ 2 番目のパーセント記号をエスケープする必要がないのでしょうか?

このコード (クエリ) は AJAX ページで実行されています。デバッグするために、その AJAX ページを URL 経由で開きました。完璧な結果を示しています

SELECT field1 from table_name where field2 like '%value_of_var1%'

しかし、ページが AJAX 経由で呼び出されると、最初のパーセント記号なしで表示されます。本当に問題が何であるかを理解するのを手伝ってくれませんか?

4

2 に答える 2

2

ご返信ありがとうございます。私の問題は$_REQUEST['var1']、数字でした。%number は HTML で解析されます。エラー 500 については、私のコードの間違いでした。

于 2013-06-03T08:06:37.390 に答える
0

値を変数に割り当てます。

$variable = $_REQUEST['var1'];  
$query = "SELECT field1 from table_name where field2 like '%".$variable."%'";

このクエリはテスト済みで、機能しています。

于 2013-05-30T05:11:42.660 に答える