Skip to content
Advertisement

Undefined class constant ‘PDO::FETCH_DEFAULT’

I’m using PHP FluentPDO, this query works in localhost, but not in webhosting. PHP version is 7.4, FluentPDO: "envms/fluentpdo": "^2.2":

$pdo = new PDO("mysql:dbname={$mysql['db_name']};host={$mysql['host']}", $mysql['user'],
    $mysql['password'], array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'", PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC));

$q = new Query($pdo);

$q->from('table')
    ->where(['email' => 'admin@example.com'])
    ->select('id, name, email, password', true)
    ->fetchAll();

The error is:

Undefined class constant ‘PDO::FETCH_DEFAULT’

Advertisement

Answer

PHP version is 7.4

This PHP version is no longer supported. Please upgrade to an actively supported version if you can.

PDO::FETCH_DEFAULT is available only since PHP 8.0.7, so if you are using an earlier version, this constant will not be available.

FluentPDO version 2.2 should still support PHP 7.4, which makes this a bug in FluentPDO. There already exists a pull request to fix this bug.

User contributions licensed under: CC BY-SA
1 People found this is helpful
Advertisement