Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/230.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php MySQLi不返回获取的数据_Php_Mysqli - Fatal编程技术网

Php MySQLi不返回获取的数据

Php MySQLi不返回获取的数据,php,mysqli,Php,Mysqli,我有一个PHP脚本,可以查询数据库并返回数据库中所有用户名的列表。问题是,它没有打印任何内容,我认为我在错误地执行while语句,下面是我的代码: <?php include "init.php"; $stmt = "SELECT username FROM tbl_users "; $result = $dbcon -> prepare($stmt); $result->execute(); $result->store_res

我有一个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++;
    }

?>

主要问题是您没有正确阅读手册/示例

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
    include "init.php";

    $stmt = "SELECT username FROM tbl_users ";
    $result = mysqli_query($sqlconnection, $stmt) or die($mysqli_load->error);
    $count = 0;
    while($row = mysqli_fetch_assoc($result)){
        if($row['username']=="ben"){
          echo "Here";
        }
        //$count++;
    }
?>

您确定连接到数据库的用户具有查看该表的权限吗?你确定表中有记录吗?您可以尝试“从tbl_用户中选择计数(*),因为这将返回一行(假设没有错误)。表中是否有用户名
Ben
?您在没有
$
的情况下注释掉了
count++
,它真的是
count++
而不是
$count++
?您好,数据库中确实存在ben为什么使用oop和过程风格?
$result->fetchAll()。除了
while($row=mysqli\u fetch\u assoc($result))中的
mysqli\u fetch\u assoc()
<?php
    include "init.php";

    $stmt = "SELECT username FROM tbl_users ";
    $result = mysqli_query($sqlconnection, $stmt) or die($mysqli_load->error);
    $count = 0;
    while($row = mysqli_fetch_assoc($result)){
        if($row['username']=="ben"){
          echo "Here";
        }
        //$count++;
    }
?>
$link = new mysqli("localhost","user","pass","database");