php - MySQLi 不返回获取的数据

标签 php mysqli

我有一个 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/

相关文章:

php - Laravel 仓库模式解释

php - 使用 PHP printf 生成 sql 查询

html - 使用 JavaScript 的 Codeigniter

PHP数组到SQL

php - 将数据上传到数据库时出现问题

PHP函数连接数据库调用查询失败

php - 保存 PNG 图像以便快速加载的最佳方式

PHP/MYSQLi SQL SELECT 在多个表上并将结果作为 json 对象返回

php - 在 mysqli 连接中使用 mysql_* 函数

php - 没有更新时获取INSERT DUPLICATE KEY UPDATE语句的last_insert_id