2

私は非常に単純なモックアップ アプリケーションを使用して、DB にクエリを実行し、結果をマップに表示しています。アプリケーションGETは、シリアル化された値の配列を返すサーバーに httprequest を送信します。httprequest の基本構造は次のとおりです。

httpRequest.open("GET","handle-query.php?query=" + queryJs)

そして、反対側では:

$queryPhp = $_GET["query"];

クエリが次のようになると...

["SELECT%SUM(commit)%FROM%financialdata%WHERE%region='Centre'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%region='Kara'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%region='Maritime'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%region='Plateaux'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%region='Savanes'"]

...その後、サーバーに適切に渡され、応答が生成されます。ただし、クエリが次のようになると...

["SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Sotouboua'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Tchamba'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Tchaoudjo'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Assoli'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Bassar'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Bimah'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Doufelgou'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Keran'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Kozah'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Golfe'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Lacs'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Vo'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Yoto'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Zio'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Amou'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Haho'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Kloto'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Ogou'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Wawa'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Oti'", "SELECT%SUM(commit)%FROM%financialdata%WHERE%prefect='Tone'"]

...その後、サーバーは空の文字列を受け取ります。両方の文字列は同じ関数によって生成され、両方とも私の仮想サーバー (WAMP) で完全に機能します。誰かに何かアイデアがあれば、それは大歓迎です。

(PS を読んだ後、より適切なサニタイズなどを備えたフレームワークを使用する必要があることに気付きましたが、これはおそらく 2 時間オンラインで使用する必要がある単なるデモであり、最初からやり直すよりも、この小さなことを修正する方がよいでしょう。 . それは私のローカルホストで完全に動作します.)

4

1 に答える 1

2

実際に質問に答えるには、get パラメータをquery(handle-query.php?query=) として送信し、それをqueryJS(queryJs) として引き出します。

$_GET['query'] // instead of $_GET['queryJs']

するべきです。

(そして、誰もが指摘しているように、実際に SQL を実行しない予定があり、db 構造を宣伝したいだけの場合を除き、SQL を平文またはその他の方法でネットワーク経由で送信しないでください。)

于 2012-12-11T21:40:39.227 に答える