2

準備されたステートメントの方がはるかに安全であり、クエリが壊れることを知るまでは、正常に機能する自然な結合クエリがあります。私はいくつかの調査を行い、準備されたステートメントと自然な結合がうまく機能しないことを読みました。ここに私の元のクエリがあります:

$query = "select * from table1 natural join table2 where table1.id='$id' ";

クエリで結合を行う必要がありますが、州と都市の両方のテーブルで一致させるには 2 つの列が必要です。これを達成し、両方のテーブルからすべての列を選択するにはどうすればよいですか? これは私がこれまでに持っているものですが、機能していません:

$query = "select * from table1 join table2 on table1.state = table2.state and table1.city = table2.city where table1.id='$id'";

現在、JOIN ON を使用してクエリを機能させようとしているだけで、table1.id='$id' を table.id=? に置き換えたいと考えています。

4

1 に答える 1

1

Instead of table1.id = '$id' you use table1.id = ? just like you said.

Then you run ->execute():

$stmt = $db->prepare($query) or die($db->error);
$stmt->execute(array(123));
于 2012-06-11T05:35:46.243 に答える