Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Fetchall仅返回列标题_Php_Mysql_Pdo - Fatal编程技术网

PHP Fetchall仅返回列标题

PHP Fetchall仅返回列标题,php,mysql,pdo,Php,Mysql,Pdo,我有一个数据库,我正试图查询,以获得信息显示给我的用户。我用过 fetch(PDO::FETCH_ASSOC) 在检索单行或行之前 $row = mysql_fetch_array($result) 取得了良好的效果。然而,我的理解是,使用PDO是更好的实践,所以这就是我正在尝试做的 我遇到的问题是,我的结果只显示了我需要的第一行数据。在本例中,它一遍又一遍地显示列标题,从不给我数据 $stmt = $conn->prepare("SELECT ? FROM application")

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

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

很高兴您知道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
}

根据php文档


顺便说一下,您必须使用
fetchAll
,而不是
fetchAll

。我花了大约2个小时来寻找这个问题的解决方案。所以,如果这是已经存在的或者非常简单的事情,那么我道歉。谢谢你的帮助,非常感谢。在本例中,您所说的不必使用prepared语句是有道理的。你能告诉我,如果我是的话,我怎样才能完成这项工作吗?我感觉我需要在绑定中使用一个输出参数。是吗?不客气。如果您要传递一个参数,您将执行如下操作
$stmt=$conn->prepare(“SELECT*FROM-application-WHERE-id=:id”)
然后将参数作为
$stmt->bindParam(':id',$id)传递$stmt->execute()