Catchable fatal error: Object of class PDOStatement could not be converted to string in line 114

pdo, php

Solution

In the comments, you show the following:

$query = $db->query('SELECT MAX( Bestelnummer ) FROM Bestellingsdetail');
$query->execute();
$max = $query;
$max++;

This is not how you get the result from a query. You are setting `$max` to a `PDOStatement` object. You need to `fetch()` the result in order to use it.

// I've added "AS maxval" to make it easier to get the row
$query = $db->query('SELECT MAX(Bestelnummer) AS maxval FROM Bestellingsdetail');
$max_row = $query->fetch(PDO::FETCH_ASSOC);

$max = $max_row['maxval'];
$max++;

Docs: http://www.php.net/pdo.query

P.S. `$query->execute();` is only needed for prepared statements. `query()` will execute the query immediately.

Problem

I'm trying to add some data to my database, but I'm getting the error Catchable fatal error: Object of class PDOStatement could not be converted to string in /var/www/mandje.php on line 114. This is the code I'm using: ``` foreach($_SESSION["cart"] as $id => $value){ $query = $db->query('SELECT * FROM Producten WHERE ProductID ="'.$id.'" '); $query->execute(); while($row = $query->fetch(PDO::FETCH_ASSOC)){ $price = $row['Prijs']; $ProductID = $row['ProductID']; } $sql="INSERT INTO Bestellingsdetail( Bestelnummer, ProductID, Aantal, Prijs) VALUES ($max,$ProductID,$value,$price)"; //<---- line 114 $count = $db->execute($sql); ``` I don't really get what's going wrong here. Any help would be much appreciated :)

Original source

Related problems