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

时间:2010-02-25 12:24:49

标签: php mysqli

以下是我正在使用的代码。另外他们都做了他们应该做的事情,但是当我尝试使用第二个句子中的结果时,它不会返回任何东西。我知道第一个语句总是返回正确的数据。有人能告诉我这是错的吗?感谢

$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 个答案:

答案 0 :(得分:1)

下面的代码可以解决问题。

$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();