Logo Questions Linux Laravel Mysql Ubuntu Git Menu

PDO query error after server migration and/or PHP upgrade




I have a small app running using PDO and after a server migration and PHP upgrade I'm now getting the following error

Warning: PDO::query(): SQLSTATE[HY000]: General error: mode must be an integer in var/www/xxxxxxxx

The line it references is

$statement = $this->_connection->Query("SELECT * FROM table WHERE SOMECOL = '$col' LIMIT 1", $this->_connection);

I've been looking around google for awhile and there doesn't seem to be any fix. I've tried setting the default fetchmode using $db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_OBJ); but the error doesn't change.

Appreciate they help :)

like image 822
Josh Undefined Avatar asked Mar 24 '23 11:03

Josh Undefined

1 Answers

Sending $this->_connection as a parameter there is wrong and not expected by PDO Query

PDOStatement PDO::query ( string $statement )

PDOStatement PDO::query ( string $statement , int $PDO::FETCH_COLUMN , int $colno )

PDOStatement PDO::query ( string $statement , int $PDO::FETCH_CLASS , string $classname , array $ctorargs )

PDOStatement PDO::query ( string $statement , int $PDO::FETCH_INTO , object $object )

That second parameter, if it is there, has to be an int

Source: PHP Manual

like image 107
Hanky Panky Avatar answered Apr 02 '23 14:04

Hanky Panky