首页 > 解决方案 > MySQL查询无结果

问题描述

我想回显我的数据库结果,Session但我没有得到任何结果或错误:

  $_SESSION['username'];

  $link = mysqli_connect("$myHost", "$myUser", "$myPass", "$myDB");

    // Check connection
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }


    $username = mysqli_real_escape_string($link, $_SESSION['username']);


   $sql = "SELECT * FROM users where username = $username";
    $result = mysqli_query($link, $sql);

    echo $result;

有谁知道为什么不?会话有效。

谢谢

标签: phpmysqlmysqli

解决方案


您应该更改查询,如下所示:

$sql = "SELECT user FROM yourtablename WHERE username = $username"

其中“user”是要选择的数据,如果要选择所有数据,可以使用“*”,yourtablename 是要选择的表的表名。

编辑后,您的代码应如下所示

  $_SESSION['username'];

  $link = mysqli_connect("$myHost", "$myUser", "$myPass", "$myDB");

    // Check connection
    if($link === false){
        die("ERROR: Could not connect. " . mysqli_connect_error());
    }


    $username = mysqli_real_escape_string($link, $_SESSION['username']);


   $sql = "SELECT * FROM users where username = $username";
    if ($result = $link->query($sql)) {

        while ($row = $result->fetch_row()) {
            var_dump($row);
        }

        $result->close();
    }

更多信息在这里

注意: mysqli_real_escape_string这不是很安全。防止 SQL 注入的更好选择是使用准备好的语句,更多信息在这里


推荐阅读