gpt4 book ai didi

php - 为什么一个查询返回正确的值,而紧随其后的查询返回 0?

转载 作者:可可西里 更新时间:2023-11-01 08:50:37 27 4
gpt4 key购买 nike

这是我的代码:

            $stmt1 = $db->prepare("SELECT wins FROM users WHERE id = ?");
$stmt2 = $db->prepare("SELECT losses FROM users WHERE id = ?");

$stmt1->bind_param("i", $_SESSION["id"]);
$stmt2->bind_param("i", $_SESSION["id"]);

$stmt1->bind_result($db_wins);
$stmt2->bind_result($db_losses);

$stmt1->execute();
$stmt2->execute();

$stmt1->fetch();
$stmt2->fetch();

// Print out user scores
echo "<p><strong>User:</strong> " . $_SESSION["username"] . "</p>\n";
echo "<p><strong>Wins:</strong> " . $db_wins . "</p>\n";
echo "<p><strong>Losses:</strong> " . $db_losses . "</p>\n";

除 losses 之外的所有内容都正确打印,它在应该打印表中的值时打印 0。

注意事项:

  • 它按预期在页面下方打印值,但不使用准备语句。
  • 如果我在 phpMyAdmin(返回 0 的查询)或 Sequel Pro 中运行它,它会返回正确的损失值。

最佳答案

我同意上面 Kolink 的评论,但我认为将您的代码更改为以下内容也应该可以解决问题。 PHP pages不过提供以下替代方案,也许它也可以用于您的情况?编辑:显然,您仍然可以将 bind_param 合并到其中。

/* prepare statement */
if ($stmt = $mysqli->prepare("SELECT Code, Name FROM Country ORDER BY Name LIMIT 5")) {
$stmt->execute();

/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2);

/* fetch values */
while ($stmt->fetch()) {
printf("%s %s\n", $col1, $col2);
}

/* close statement */
$stmt->close();
}

关于php - 为什么一个查询返回正确的值,而紧随其后的查询返回 0?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15032943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com