Shane A. Darr
Shane A. Darr

Reputation: 521

PHP Fetchall only returning column header

I have a database that I am trying to query to get information to display to my user. I have used

fetch(PDO::FETCH_ASSOC)

before when retrieving a single row or

$row = mysql_fetch_array($result)

with good results. However, it is my understanding that it is better practice to use PDO so that is what I am trying to do.

The problem I am running into is that my results are only showing me the first row of the data I need. In this instance it is displaying the column header over and over and never giving me the data.

$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'];
}

Here are the results

     application_IDapplication_IDapplication_IDapplication_ID

Upvotes: 0

Views: 332

Answers (2)

fortune
fortune

Reputation: 3372

As per the php documentation pdo::fetchAll

you have to use fetchAll, instead of fetchall.

Upvotes: 0

Richie
Richie

Reputation: 1439

It is good that you are aware that MySQL has been oficially deprecated and now we are supposed to used MySQLi or better yet, PDO.

Since you are not accepting any user input, there is no need of using a prepared statement.

Simply do this:

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

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

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

Upvotes: 1

Related Questions