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 工作,然后我想用 table.id= 替换 table1.id='$id'?

4

1 回答 1

1

而不是像你说的那样table1.id = '$id'使用。table1.id = ?

然后你运行->execute()

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