PHP Fetchall只返回列标题

时间:2014-08-22 05:03:44

标签: php mysql pdo

我有一个数据库,我正在尝试查询以获取要显示给我的用户的信息。我用过

fetch(PDO::FETCH_ASSOC)
检索单行或

之前的

$row = mysql_fetch_array($result)

效果很好。但是,我的理解是使用PDO是更好的做法,这就是我想要做的事情。

我遇到的问题是我的结果只显示了我需要的第一行数据。在这种情况下,它一遍又一遍地显示列标题,从不给我数据。

$stmt = $conn->prepare("SELECT ? FROM application");
$stmt->bindparam(1, $application_ID);

$stmt->execute();
$results = $stmt->fetchall(PDO::FETCH_ASSOC);

foreach($results as $row){
    echo $row['application_ID'];
}

以下是结果

     application_IDapplication_IDapplication_IDapplication_ID

2 个答案:

答案 0 :(得分:1)

很高兴你知道MySQL已经被弃用了,现在我们应该使用MySQLi或更好的PDO。

由于您不接受任何用户输入,因此无需使用预先准备好的声明。

只需这样做:

$stmt = $conn->query("SELECT * FROM application");

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

foreach($results as $row){
   echo $row['application_ID'];
  //output other rows here
}

答案 1 :(得分:0)

根据php文档pdo::fetchAll

您必须使用fetchAll,而不是fetchall