0

MySQL クエリから構文エラーが発生し、少し困惑しています。オンラインで見る限り、これは正しい作業方法のようであり、テーブル名と変数が正しいと確信しています。

これが私が受け取っているエラーです。

Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND `date` = ORDER BY 'scriptno' ASC' at line 3`

そして、これが問題と思われるコードです[しかし、私が見る限り、そうではありません...

$data = mysql_query("SELECT script FROM `tableoscripts` WHERE `event` = $_GET[$eventq] AND `date` = $_GET[$dateq] ORDER BY 'scriptno' ASC") or die ('Error: '.mysql_error ());

前のページが get メソッドを使用してこのページに移動し、送信後に詳細がアドレス バーに表示されることに疑問がある場合に備えてください。

4

6 に答える 6

3

値を引用する必要があります:

...WHERE `event` = '$_GET[$eventq]' AND `date` = '$_GET[$dateq]'...

フィルター処理されていないユーザー データをクエリで使用するのは危険であることに注意してください。SQL インジェクション攻撃と緩和情報については、 http://bobby-tables.com/を参照してください。

于 2013-06-17T18:06:36.930 に答える
2

$_GET[$dateq]空/未定義であるため、エラーメッセージが示す位置でクエリが壊れています。

AND `date` =   ORDER BY
             ^-- Your variable should bere here.
于 2013-06-17T18:06:12.460 に答える
0

$eventq と $dateq が定義されている場合は、次のシャウト作業よりも

$data = mysql_query("SELECT script FROM `tableoscripts` 
        WHERE `event` = '{$_GET[$eventq]}' AND `date` = '{$_GET[$dateq]'}
        ORDER BY 'scriptno' ASC") or die ('Error: '.mysql_error ());
于 2013-06-17T18:15:20.520 に答える
0

問題は「date=$_Get[$dateq]」にあると思います。日付形式に変換する必要があるかもしれません。オラクルでは to_date() 関数を使用できます。MySql の同等の機能については不明です。

于 2013-06-17T18:08:41.160 に答える