gpt4 book ai didi

php - 准备好的语句获取行不返回任何内容

转载 作者:行者123 更新时间:2023-11-29 10:37:09 26 4
gpt4 key购买 nike

我想获取这一行并将其保存到 $notescheck 中,但是当我尝试执行此操作时,当我想要回显时 $notescheck 为空,并且有没有错误。对于未准备好的语句,它可以正常工作。

代码:

if($user_ok == true) {
$sql = "SELECT notescheck FROM users WHERE username=? LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$log_username);
$stmt->execute();
$row = $stmt->fetch();
$notescheck = $row[0];
$stmt->close();
}

对于未准备好的语句,它看起来像这样:

 if($user_ok == true) {
$sql = "SELECT notescheck FROM users WHERE username='$log_username' LIMIT 1";
$query = mysqli_query($conn, $sql);
$row = mysqli_fetch_row($query);
$notescheck = $row[0];
mysqli_close($conn);
}

最佳答案

这不是 fetch() 处理准备语句的方式,您并没有像您想象的那样获取数组。您还需要将选择的结果绑定(bind)到变量中,然后使用它们来显示。如果有多个记录,您可以使用 while($stmt->fetch){ echo $notescheck };

if($user_ok == true) {
$sql = "SELECT notescheck FROM users WHERE username=? LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$log_username);
$stmt->execute();
$stmt->bind_result($notescheck);
$stmt->fetch();
$stmt->close();
}
echo $notescheck;

您应该阅读以下内容:

http://php.net/manual/en/mysqli-stmt.fetch.php

匹配 username=x 的多个记录将如下所示:

if($user_ok == true) {
$sql = "SELECT notescheck FROM users WHERE username=? LIMIT 1";
$stmt = $conn->prepare($sql);
$stmt->bind_param("s",$log_username);
$stmt->execute();
$stmt->bind_result($notescheck);
$stmt->store_result()
while($stmt->fetch()){
echo $notescheck;
}
$stmt->close();
}

关于php - 准备好的语句获取行不返回任何内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46225462/

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