我有一个自然连接查询,直到我了解到准备好的语句更安全并且它破坏了我的查询。我做了一些研究,并读到准备好的陈述和自然连接不能很好地结合在一起。这是我原来的疑问:
$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'答案 0 :(得分:1)
而不是table1.id = '$id'
,而不是像你说的那样使用table1.id = ?
。
然后你运行->execute()
:
$stmt = $db->prepare($query) or die($db->error);
$stmt->execute(array(123));