0

テーブルからいくつかの行を取得したいSELECTのですが、これらの行は のような条件を満たす必要がありますcolumn = value。これが私のSELECT声明です:

$query = "SELECT t1.title, t1.introtext, t2.jr_street, t2.jr_city, 
    t2.jr_state, t2.jr_postalcode, t2.jr_country, t3.created, t3.name, 
    t3.title, t3.comments, t4.ave 
FROM $table1 t1
    LEFT OUTER JOIN $table2 t2 ON t1.id = t2.contentid
    LEFT OUTER JOIN $table3 t3 ON t1.id = t3.pid
    LEFT OUTER JOIN $table4 t4 ON t1.id = t4.reviewid
";

WHEREステートメントの後に句を追加しようとしましたFROMが、SQL 構文エラーが発生します。

4

1 に答える 1

1

私はあなたの問題を推測しなければならないようです。次回は、完全な例と正確なエラーを教えてください。このようなことを試しましたか?

$value = (int) $_POST['value'];
$query = "SELECT t1.title, t1.introtext, t2.jr_street, t2.jr_city, t2.jr_state,
t2.jr_postalcode, t2.jr_country, t3.created, t3.name, t3.title, 
t3.comments, t4.ave FROM $table1 t1
LEFT OUTER JOIN $table2 t2 ON t1.id = t2.contentid
LEFT OUTER JOIN $table3 t3 ON t1.id = t3.pid
LEFT OUTER JOIN $table4 t4 ON t1.id = t4.reviewid
WHERE t2.column = ".$value."
AND t1.catid=8";

私はあなたが table2 から選択したいのだと推測しました ;) 正しいテーブルと列に入力する必要があります。また、カテゴリの選択をwhere句に入れました。これにより、読みやすくなります。

(およびテーブル) などのすべての変数がクエリで使用するために保存されていることを確認してください$value。たとえば、これ$valueは整数であり、テーブルはコードで明示的に設定されており、ユーザー入力ではありません。SQL インジェクションの詳細については、次を参照してください。

于 2013-05-27T10:06:25.180 に答える