2

コードが実行されると、次のエラーが表示されます。

「ORDER BY ID DESC limit 1」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

次の例のように:

$prevquery = "SELECT  * FROM $tbl_name WHERE  ID < $ID ORDER BY ID DESC limit 1";
$prevresult= mysql_query($prevquery) or die(mysql_error());

while($prevrow = mysql_fetch_row($prevresult))
{

  displaying the previous ID:-
  $prevID = $prevrow['ID'];
}

これを防ぐために何をすべきですか?

4

4 に答える 4

0

LIMIT で「where」を使用することはできません。代わりに ORDER by id desc LIMIT 1 を使用してください

于 2013-11-19T02:00:01.913 に答える
0

フォームの一般的なエラーが表示されるたびに、追加のメモ...

「ORDER BY ID DESC limit 1」の近くで使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

「近く」を調べるヒントは、ほとんどの場合、エラー メッセージに示されている単一引用符で囲まれた文字列が始まる直前の SQL ステートメントの問題を示しています。

したがって、この場合、エラーは $ID の直前にある「ORDER BY」で始まる SQL 文字列を引用します。$ID が定義されていない (そして SQL 文字列で空白になる) か、$ID が正しいデータ型ではないに違いありません。

いずれにせよ、他の人が示唆しているように、SQL文字列をエコーまたはログに記録して、実際に何がクエリされているかを確認する必要があります。

于 2013-11-15T20:57:03.950 に答える
0

これはうまくいくはずです

$prevquery = "SELECT * FROM $tbl_name WHERE ID < '$ID' ORDER BY ID DESC limit 1";

$prevresult= mysql_query($prevquery) または die(mysql_error());

while($prevrow = mysql_fetch_row($prevresult)) {

以前の ID の表示:- $prevID = $prevrow['ID']; }

于 2013-08-05T07:10:13.370 に答える