Php MySQLi使用另一个已准备语句中的参数准备语句

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

我正试图切换到prepared语句,因为它们提供了SQL注入保护,但我目前仍无法解决这个问题

如何使用另一个语句中的数据作为参数进行预处理语句查询

我的意思是:如果我有一张有人的桌子,另一张有他们设备的桌子,我想列出所有有他们设备的人。我该怎么做

我想实现的是这样的目标:

    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错过了那个。。。