我做了一个PHP代码来显示数据,但它什么都不显示。如何解决这个问题? (PDO)

时间:2018-11-07 11:47:45

标签: php sql

您在此处看到的代码应该从数据库中加载数据并显示查询中要求的数据并显示它。

我想显示“角色”。我该如何进行这项工作?

<?php
include('config.php');
session_start();
$username = $_SESSION["username"];
$query = "SELECT rol FROM users WHERE username = $username";

$stm = $con->prepare($query);
$stm->execute();
$result = $stm->fetchAll(PDO::FETCH_OBJ);
foreach ($result as $pers) {
    echo $pers->rol;
}
?>  

2 个答案:

答案 0 :(得分:0)

准备好的语句的目的是通过在将变量提交到数据库之前声明变量的类型来“准备”它们。

<?php
include('config.php');
session_start();
$username = $_SESSION["username"];
$query = "SELECT rol FROM users WHERE username = :username";

$stm = $con->prepare($query);
$stm->bindParam(':username', $username, PDO::PARAM_STR, 20);
$stm->execute();
$result = $stm->fetchAll(PDO::FETCH_OBJ);
foreach ($result as $pers) {
    echo $pers->rol;
}

?>  

因此,如上所述,您必须在bindParam中声明要发送的参数,而不是将变量放在查询本身中。

答案 1 :(得分:-1)

您可以使用此示例

<?php
$sth = $dbh->prepare("SELECT * FROM users WHERE username = ?");
$sth->bind_param("s", $username);
$sth->execute();
$result = $sth->fetchAll();
print_r($result);
?>

此print_r返回数据库中的所有列,如果您希望可以使用此列

foreach($result as $item){
echo $item->rol;
}

祝你好运