只是回显查询而不是var_dump

时间:2018-09-14 16:38:39

标签: php mysql mysqli

如何仅将代码从var_dump更改为echo

代码:

$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']);

var_dump($username);

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

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


    }

因为如果我var_dump($row);我总是得到这个:

'test@gmail.com' (length=16)

但是我只想回显用户名:)我是新来的php抱歉。

谢谢

2 个答案:

答案 0 :(得分:1)

您的查询失败,因为您忘记在查询中的$username周围加上引号。应该是:

$sql = "SELECT * FROM exampletable where username = '$username'";

然后您可以在循环中执行以下操作:

while ($row = $result->fetch_assoc($result)) {
    echo $row['somecolumnname'];
}

在与用户名匹配的每一行中查看该列的内容。

答案 1 :(得分:0)

sarahn22!我看到您是一个新的贡献者,欢迎您使用StackOverflow。 :)

根据PHP MySQLi fetch_row()函数documentation,每当使用它时,您都会收到一个数组,其中每一列都作为索引;如果找不到行,则返回null。

在这种情况下,考虑到用户名列为第一列,您可以通过输入以下内容来获得它:

echo $row[0];

因此,为了更好地理解,请将数据库表想象为:

username | first_name | last_name
---------------------------------
user01   | John       | Snow

这将是结果:

echo $row[0]; // Shows "user01";
echo $row[1]; // Shows "John";
echo $row[2]; // Shows "Snow";

祝您在PHP学习的新道路上好运。 :)