Estoy usando PHP FluentPDO, esta consulta funciona en localhost, pero no en webhosting. La versión de PHP es 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();el error es:
Constante de clase indefinida 'PDO::FETCH_DEFAULT'
La versión de PHP es 7.4
Esta versión de PHP ya no es compatible. Actualice a una versión con soporte activo si puede.
PDO::FETCH_DEFAULT solo está disponible desde PHP 8.0.7, por lo que si está utilizando una versión anterior, esta constante no estará disponible.
La versión 2.2 de FluentPDO aún debería ser compatible con PHP 7.4, lo que hace que esto sea un error en FluentPDO. Ya existe una solicitud de extracción para corregir este error.
Este paquete parece tener un error de configuración. La versión estable actual declara PHP/7.1 como versión mínima ( código ):
"php": ">=7.1", Sin embargo, está usando la constante PDO::FETCH_DEFAULT , que requiere PHP/8.0.7 o superior ( fuente y código ):
PDO::FETCH_DEFAULT(int) Especifica que se utilizará el modo de obtención predeterminado. Disponible a partir de PHP 8.0.7.
/** @var int */ protected $currentFetchMode = PDO::FETCH_DEFAULT;Tus opciones son: