PDO声明没有提取数据

时间:2013-02-10 01:37:23

标签: php mysql pdo

我正在尝试列出表中两个特定列的数据。每当我转到该文件时,它都会返回服务器错误。当我删除while循环时,它执行得很完美,所以我不知道我做错了什么。

这是错误:

  

服务器错误网站在检索时遇到错误   http://dayzlistings.com/reg-whitelist.php。它可能会失败   维护或配置不正确。以下是一些建议:   稍后重新载入此网页。 HTTP错误500(内部服务器错误):An   服务器尝试时遇到意外情况   满足要求。

try {
    $dbh = new PDO('mysql:host=localhost;dbname=dbname','dbuser','dbpass');
            $sql = "SELECT * from wp_cimy_uef_data";
            $q = $dbh->prepar($sql);
            $q->execute();
                while($row = $q->fetchall() {
                    echo $row['USER_ID'];
                    echo $row['VALUE'];
                }
    }
$dbh = null;
} catch (PDOException $e) {
    print "Error from Dedicated Database!: " . $e->getMessage() . "<br/>";
    die();
}

2 个答案:

答案 0 :(得分:0)

不是fetchAll()将整个表作为数组返回?..

你不需要while循环$ row ..只需执行$row = $q->fetchAll()而不用while和print_r整个数组,看看你得到了什么..

如果你还想做,我认为你可以使用

while($row = $q->fetch()){
//  rest of the code here
}

此外,你不能在try catch ..

之间放一些东西
try{
//code
}
$dbh = null; //**This is not allowed by the way...**
catch(PDOException $e){
  //code

}

DINS

答案 1 :(得分:0)

当您与服务器交互时,

500意味着错误,例如访问数据库。 并且$row['USER_ID']永远不会有效,相反,您应该使用$row[0]['USER_ID']