显示Pdo的结果

时间:2017-11-15 20:32:24

标签: php mysql pdo

嗨我有一个小问题我正在尝试我的pdo查询和打印他们的结果但没有这样的运气我可能只是做了一个愚蠢的错误我没有看到查询似乎是finde所以它如果名称在数据库中(并且如果你把它放在引号中会有所不同)确实会使变量获得空值或其他东西...

$username="xxx";
$firstname="xxx";
$check=0;
    if (isset($_GET['u'])){
        $username=strip_tags(@$_GET['u']);
        if (ctype_alnum($username)){
            $check=$stmt=$link->prepare("SELECT * FROM
users WHERE username = ?");
            $stmt->execute(array($username));
            $check=$stmt->fetchAll();
            if(count($check)==1){
                $get=$stmt->fetch(PDO::FETCH_BOTH);
                echo "$get";
                $username =$get["username"];
                $firstname = $get["first_name"];
            }else{
                echo "<h2> User does not exist!</h2>";
                exit();
            }
        }
    }
?>
<h2>Profilepage for: <?php echo "$username"; ?></h2>
<h2>First name: <?php echo "$firstname"; ?></h2

1 个答案:

答案 0 :(得分:0)

$stmt->fetchAll()正在获取查询的所有结果。完成此操作后,$stmt->fetch()无法获取更多结果。您应该从$check数组中获取数据。

if (count($check) == 1) {
    $get = $check[0];
    $username = $get["username"];
    $firstname = $get["first_name"];
} else {
    echo "<h2> Username does not exist </h2>";
    exit();
}

或者您可以将fetchAll替换为fetch

$stmt->execute(array($username));
$get = $stmt->fetch(PDO::FETCH_ASSOC);
if ($get) {
    $username = $get["username"];
    $firstname = $get["first_name"];
} else {
    echo "<h2> Username does not exist </h2>";
    exit();
}        

另外,echo "$get"毫无意义。 $get是一个数组,您无法回复它,您需要使用print_r($get)var_dump($get)