Php MySQLi语句的嵌套

Php MySQLi语句的嵌套,php,mysqli,prepared-statement,nested-loops,Php,Mysqli,Prepared Statement,Nested Loops,我有两个准备好的语句(例如),其中第二个语句将在while(stmt1->fetch()){}循环中执行。但是,内部语句(stmt2)不会在第一个while循环中执行: <?php $mysqli = new mysqli("localhost","root","","test"); if(mysqli_connect_errno()) { printf("connection failed: %s\n",mysqli_connect_error()); ex

我有两个准备好的语句(例如),其中第二个语句将在
while(stmt1->fetch()){}
循环中执行。但是,内部语句(stmt2)不会在第一个while循环中执行:

<?php
  $mysqli = new mysqli("localhost","root","","test");

  if(mysqli_connect_errno())
  {
    printf("connection failed: %s\n",mysqli_connect_error());
    exit();
  }

  $stmt1 = $mysqli->prepare("select id from posts");
  $stmt2 = $mysqli->prepare("select username from members where id=?"); 

  $stmt1->execute(); 
  $stmt1->bind_result($ID);

   while($stmt1->fetch())
   {
     echo $ID.' ';

      /*Inner query*/
      $stmt2->bind_param('i',$id);

      $id =$ID;    

      $stmt2->execute();

      $stmt2->bind_result($username);

      while($stmt2->fetch())
      {
        echo 'Username: '.$username;
      }     
      /*Inner query ends*/
   }  

 ?>

如果我将内部查询部分剪切粘贴到外部while循环之外,它将执行,但它是无用的。我应该怎么做才能正确地执行它呢?

为什么要对它执行嵌套循环,而您可以执行内部联接

<?php

  $mysqli = new mysqli("localhost","root","","test");

  if(mysqli_connect_errno())
  {
    printf("connection failed: %s\n",mysqli_connect_error());
    exit();
  }

  if($stmt1 = $mysqli->prepare("SELECT posts.id,members.username FROM posts INNER JOIN members ON posts.id=members.id")){

    $stmt1->execute(); 
    $stmt1->bind_result($id,$username);

    while($stmt1->fetch()){

      printf("ID # %d.<br>Username: %s<br><br>",$id,$username);

    }    
    $stmt1->close(); 
  }

  $mysqli->close();

 ?>


First institute告诉我,在while循环中,您的数据库句柄仍然需要访问原始查询。如果创建两个连接,即声明
$mysqli2=newmysqli(…)然后使用该对象准备内部查询?是否尝试显示
mysqli
错误?在第二个
execute()
Stick
mysqli\u报告后添加
mysqli\u错误($mysqli)
(mysqli\u报告错误| mysqli\u报告严格)位于脚本的最顶端。另外,请确保您在
php.ini
文件中启用了
display_errors
并将
error_reporting
设置为
E_ALL
,使用$stmt1->store_result()解决了我的问题,有人能告诉我$stmt1->store_result()的实际功能吗?谢谢您的回答…但是,我很想知道使用内部连接而不是嵌套的好处。@rosemary-它更快更容易理解。你也可以参考这里-