准备好的语句获取行 returns 无
Prepared statement fetch row returns nothing
我想获取此行并将其保存到 $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() 处理准备好的语句的方式,您并没有像您认为的那样获取数组。您还需要将 select 的结果绑定到变量中,然后使用它们来显示。如果有多个记录,您将使用 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();
}
我想获取此行并将其保存到 $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() 处理准备好的语句的方式,您并没有像您认为的那样获取数组。您还需要将 select 的结果绑定到变量中,然后使用它们来显示。如果有多个记录,您将使用 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();
}