以下是我正在使用的代码。另外他们都做了他们应该做的事情,但是当我尝试使用第二个句子中的结果时,它不会返回任何东西。我知道第一个语句总是返回正确的数据。有人能告诉我这是错的吗?感谢
$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);
修改
经过进一步检查,似乎我不能以这种方式运行两个语句。这样做的正确方法是什么?感谢
答案 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();