-2

I'm developing a web based software that uses MySQL and PHP on the backend.

I'm trying to obtain data with a complex query and in the end I just obtain the query.

   function consulttimes(){
$pdo = connect();
 try{

    $consult = $pdo->prepare("SELECT credentials.realname, timestamp_greenhouse.* FROM times.credentials, times.timestamp_greenhouse WHERE timestamp_greenhouse.id = credentials.id;"); 
    $consult->execute();
    $consult->fetch(PDO::FETCH_ASSOC);
    echo json_encode($consult); 


    //file_put_contents('times.json', $json);



}
catch(PDOException $e) {
    echo $e -> getMessage(); 
}
}

I have all the databases and the query works perfectly on phpmyadmin. Can someone help me with this?

Cheers!

Funk Forty Niner
  • 74,450
  • 15
  • 68
  • 141

1 Answers1

1

I'm trying to obtain data with a complex query and in the end I just obtain the query.

The problem is because of this line,

echo json_encode($consult); 

$consult is a PDOStatement object returned from the prepared statement. I believe you're trying to encode the row obtained from ->fetch(PDO::FETCH_ASSOC) method.

So first fetch the row from the result set, store it in a variable and then apply json_encode on it, like this:

// your code

$consult->execute();
$result = $consult->fetch(PDO::FETCH_ASSOC);
echo json_encode($result); 
Rajdeep Paul
  • 16,887
  • 3
  • 18
  • 37
  • Thanks for your answer. I used this type of encoding before in other files, but I just did it wrong this time. I just forgot this line of code '$result = $consult->fetch(PDO::FETCH_ASSOC);' . Thanks you can close the threat! – António Sousa Jun 12 '16 at 20:17