Php MySQLi使用另一个已准备语句中的参数准备语句
我正试图切换到prepared语句,因为它们提供了SQL注入保护,但我目前仍无法解决这个问题 如何使用另一个语句中的数据作为参数进行预处理语句查询 我的意思是:如果我有一张有人的桌子,另一张有他们设备的桌子,我想列出所有有他们设备的人。我该怎么做 我想实现的是这样的目标:Php MySQLi使用另一个已准备语句中的参数准备语句,php,loops,mysqli,prepared-statement,Php,Loops,Mysqli,Prepared Statement,我正试图切换到prepared语句,因为它们提供了SQL注入保护,但我目前仍无法解决这个问题 如何使用另一个语句中的数据作为参数进行预处理语句查询 我的意思是:如果我有一张有人的桌子,另一张有他们设备的桌子,我想列出所有有他们设备的人。我该怎么做 我想实现的是这样的目标: Alex: Pc, Laptop, Mobile Annie: Laptop, Mobile Danny: Mobile, Printer 到目前为止,我写的是: $people_query
Alex: Pc, Laptop, Mobile
Annie: Laptop, Mobile
Danny: Mobile, Printer
到目前为止,我写的是:
$people_query = "SELECT id, name FROM people";
$device_query = "SELECT device_name FROM devices WHERE owner_id = ?";
if(!$pplstmt = $mysqli -> prepare($people_query)) die("Couldn't prepare people statement!");
if(!$devstmt = $mysqli -> prepare($device_query)) die("Couldn't prepare device statement!");
$pplstmt -> execute();
$pplstmt -> bind_result($person_id, $person_name);
while($pplstmt->fetch()){
echo $person_name . ':';
$devstmt -> bind_param("i", $person_id);
$devstmt -> execute();
$devstmt -> bind_result($device_name);
while($devstmt->fetch()){
echo $device_name . ',';
}
}
$pplstmt -> close();
$devstmt -> close();
我已经将第二个查询的prepare语句移出了循环,因为我读到这样它就不会一次又一次地初始化了
然而,这不起作用。
有什么想法或建议吗?$devstmt=$mysqli->prepare$people\u查询应该是$devstmt=$mysqli->prepare$device\u查询Copypaste就是这样的Copypaste。你应该加入你的两个sql语句,而不是在循环中运行查询。如果我加入sql查询,我会得到多个具有相同人名的行,如果人名变为显示新的名字,那么在之后显示它将是一个痛苦的记录。。。这样,两个循环对我来说似乎更合理…@jeroen没有必要将$row用作$pplstmt->bind_result$person_id,$person_name;是用过的。@u_mulder错过了那个。。。