エラーメッセージは、質問に表示されていないコード行の実行によるものです。
1 つの明白な可能性は、このコードによって生成された文字列値が MySQL に渡されていないことです。もう 1 つの可能性は、$subject_id
SQL テキストとして解釈される文字列値が に含まれており、$query
含まれていると思われるものが に含まれていないことです。他にもたくさんの可能性があります。
このような問題をデバッグするには、実際にエラーをスローしているコード行を特定する必要があります。(あなたの場合、mysql_、mysqli、または PDO の実行または準備関数またはメソッドへの呼び出しになります。)
できることは、エラーをスローしている行の直前の行に、MySQL に渡される ACTUAL SQL テキストのecho
orを追加することです。var_dump
たとえば、このコードの後、parse または execute 呼び出しの前のコード行が変更された場合、このエラー メッセージが表示されます。$query
$query .= " LIMIT 1";
これはクエリに 2 つ目の LIMIT 句を追加しますが、これは無効であり、同じエラーが発生します。
繰り返しますが、質問に投稿されたコード行はエラーをスローしていません。投稿したコード行は、文字列値を変数に代入しているだけです。(これは、MySQL に渡される文字列値である可能性がありますが、コードのどこにも表示されません。)