skip to Main Content

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' => '[email protected]'])
    ->select('id, name, email, password', true)
    ->fetchAll();

The error is:

Undefined class constant ‘PDO::FETCH_DEFAULT’

2

Answers


  1. 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.

    Login or Signup to reply.
  2. This package seems to have a configuration error. Current stable version declares PHP/7.1 as minimum version (code):

    "php": ">=7.1",
    

    However it’s using the PDO::FETCH_DEFAULT constant, which requires PHP/8.0.7 or greater (source and code):

    PDO::FETCH_DEFAULT (int)
    Specifies that the default fetch mode shall be used. Available as of PHP 8.0.7.

    /** @var int */
    protected $currentFetchMode = PDO::FETCH_DEFAULT;
    

    Your options are:

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search