我有一个 PHP 脚本可以查询数据库并返回数据库中所有用户名的列表。问题是,它没有打印任何东西,我想我做错了 while 语句,这是我的代码如下:
<?php
include "init.php";
$stmt = "SELECT username FROM tbl_users ";
$result = $dbcon -> prepare($stmt);
$result->execute();
$result->store_result();
$count = 0;
while($row = mysqli_fetch_assoc($result)){
if($row['username']=="Ben"{
echo "Here";
}
//$count++;
}
?>
即使像这样最基本的东西也行不通:
<?php
include "init.php";
$stmt = "SELECT username FROM tbl_users ";
$result = $dbcon -> prepare($stmt);
$result->execute();
$result->store_result();
$count = 0;
while($row = mysqli_fetch_assoc($result)){
echo "Here";
//$count++;
}
?>
我似乎也不能增加计数,它甚至没有打印基本的“这里”
最佳答案
主要问题是您没有正确阅读手册/示例。
mysqli_stmt_get_result() 不会改变语句的状态。它返回 一个 mysqli 结果。所以你必须将这个返回值分配给一个变量而不是使用这个。
此外,您以完全错误的方式使用了数据库。您应该始终选择您需要的唯一数据,而不是从数据库中选择所有行。
对于您的情况,代码应该是这样的。
include "init.php";
$name = "Ben";
$stmt = $dbcon->prepare("SELECT 1 FROM tbl_users WHERE username = ?");
$stmt->bind_param("s", $name);
$stmt->bind_result($found);
$stmt->execute();
$stmt->fetch();
if ($found) ... // here you go
对于其他情况,您必须仔细阅读手册或书籍。并完全重现代码。
关于php - MySQLi 不返回获取的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36161278/