-3
 <?php
   $query = "SELECT * ";
   $query .= "FROM subjects ";
   $query .= "WHERE id='" . $subject_id ."' ";
   $query .= "LIMIT 1";
 ?>

問題の原因は次の行にあります: エラー: "データベース クエリに失敗しました: SQL 構文にエラーがあります。1 行目の 'LIMIT 1' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください"

では、なぜ...構文が正しいにもかかわらず。私にそのエラーを与えた?!

4

3 に答える 3

0

エラーメッセージは、質問に表示されていないコード行の実行によるものです。

1 つの明白な可能性は、このコードによって生成された文字列値が MySQL に渡されていないことです。もう 1 つの可能性は、$subject_idSQL テキストとして解釈される文字列値が に含まれており、$query含まれていると思われるものが に含まれていないことです。他にもたくさんの可能性があります。

このような問題をデバッグするには、実際にエラーをスローしているコード行を特定する必要があります。(あなたの場合、mysql_、mysqli、または PDO の実行または準備関数またはメソッドへの呼び出しになります。)

できることは、エラーをスローしている行の直前の行に、MySQL に渡される ACTUAL SQL テキストのechoorを追加することです。var_dump

たとえば、このコードの後、parse または execute 呼び出しの前のコード行が変更された場合、このエラー メッセージが表示されます。$query

$query .= " LIMIT 1";

これはクエリに 2 つ目の LIMIT 句を追加しますが、これは無効であり、同じエラーが発生します。

繰り返しますが、質問に投稿されたコード行はエラーをスローしていません。投稿したコード行は、文字列値を変数に代入しているだけです。(これは、MySQL に渡される文字列値である可能性がありますが、コードのどこにも表示されません。)

于 2013-08-13T06:21:49.510 に答える
-1

使用し'subject_id'ている int 形式には問題がある可能性があるためsubject_idLimit 1代替を使用してLimit 0,1ください。

<?php
   $query = "SELECT * ";
   $query .= "FROM subjects ";
   $query .= "WHERE id=" . $subject_id;
   $query .= "LIMIT 0,1";
 ?>
于 2013-08-13T06:48:34.633 に答える