代码之家  ›  专栏  ›  技术社区  ›  Drew Rich

mysqli select语句与另一个mysqli select语句的结果不匹配

  •  2
  • Drew Rich  · 技术社区  · 16 年前

    下面是我使用的代码。分别地,它们都做它们应该做的,但是当我尝试使用第二个语句中第一个语句的结果时,它不会返回任何内容。我知道第一个语句总是返回正确的数据。有人能告诉我我做错了什么吗?谢谢

    $connection = mysqli_connect($hostname, $username, $password, $dbname);
    
    $sql = "SELECT banner".$number_id."_id FROM newcms_projectbanners WHERE region_id = ?";
    
    $stmt = mysqli_prepare($connection, $sql);
    
        mysqli_stmt_bind_param($stmt, "s", $region_id);
        mysqli_stmt_execute($stmt);
        mysqli_stmt_bind_result($stmt, $banner_id);
    
        // display the results
        mysqli_stmt_fetch($stmt);
    
    $sql1 = "SELECT `title`, `active`, `linkto` FROM newcms_banners WHERE id = ?";
    
    $stmt1 = mysqli_prepare($connection, $sql1);
    
        mysqli_stmt_bind_param($stmt1, "s", $banner_id);
        mysqli_stmt_execute($stmt1);
        mysqli_stmt_bind_result($stmt1, $title, $active, $linkto);
    
        // display the results
        mysqli_stmt_fetch($stmt1);
    

    编辑

    经过进一步的检查,我似乎不能用这种方式运行两个语句。正确的方法是什么?谢谢

    1 回复  |  直到 16 年前
        1
  •  1
  •   Drew Rich    16 年前

    下面的代码实现了这一点。

    $post_stmt = $db_connection->prepare("SELECT banner".$number_id."_id FROM newcms_projectbanners WHERE region_id = ?");
    $comment_stmt = $db_connection->prepare("SELECT title, active, linkto FROM newcms_banners WHERE id = ?");
    
    $post_stmt->bind_param('i', $region_id);
    if ($post_stmt->execute())
    {
        $post_stmt->store_result();
        $post_stmt->bind_result($banner_id);
    
        if ($post_stmt->fetch())
        {
          $comments = array();
    
          $comment_stmt->bind_param('i', $banner_id);
          if ($comment_stmt->execute())
          {
            $comment_stmt->bind_result($title, $active, $linkto);
            while ($comment_stmt->fetch())
            {
              $html  = "<fieldset title='$label'>" . PHP_EOL;
                $html .= "<form action='$action' id='$id' method='post' class='$class'>" . PHP_EOL;
                $html .= "<label for'title'>Title</label>" . PHP_EOL;
                $html .= "<input type='text' name='title' value='$title' /><br />" . PHP_EOL;
                $html .= "<label for'active'>Active</label>" . PHP_EOL;
                $html .= "<input type='checkbox' name='active' checked /><br />" . PHP_EOL;
                $html .= "<label for'linkto'>Link to</label>" . PHP_EOL;
                $html .= "<input type='text' name='linkto' value='$linkto' /><br />" . PHP_EOL;
                $html .= "<input type='hidden' name='hidden' value='$banner_id'>" . PHP_EOL;
                $html .= "<input type='submit' value'Done'>" . PHP_EOL;
                $html .= "</form>" . PHP_EOL;
                $html .= "</fieldset>" . PHP_EOL;
    
            }
          }
          else
          {
            printf("Comment statement error: %s\n", $comment_stmt->error);
          }
        }
    
        $post_stmt->free_result();
    }
    else
    {
    printf("Post statement error: %s\n", $post_stmt->error);
    }
    
    $post_stmt->close();
    $comment_stmt->close();
    
    $db_connection->close();
    
    推荐文章