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

时间:2014-09-06 14:39:53

标签: php loops mysqli prepared-statement

我试图切换到准备好的语句,因为它们提供了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();

我已将第二个查询的准备语句移出循环,因为我这样读取它不会再次初始化,而且又一次又一次......

然而,这并不起作用。 任何想法或建议?

0 个答案:

没有答案