MySQLi没有返回获取的数据

时间:2016-03-22 17:28:40

标签: 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++;
    }

?>

我似乎也不能增加计数,甚至不打印基本的“这里”

我是网络开发的新手,所以任何帮助都对我意义重大

由于

2 个答案:

答案 0 :(得分:0)

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

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

对于其他情况,您必须仔细阅读手册或书籍。并重现代码完全

答案 1 :(得分:-1)

由于您的代码中存在多个错误,我设法编写代码我不确定以下是最好的但是它有效

<?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++;
    }
?>

我在您的代码中发现的错误)if($row['username']=="Ben"{

旁边"ben"){丢失了

并使用此类连接

$link = new mysqli("localhost","user","pass","database");