. * --------------------------------------------------------------------- */ namespace Glpi\System\Requirement; if (!defined('GLPI_ROOT')) { die("Sorry. You can't access this file directly"); } /** * @since 9.5.1 */ class MysqliMysqlnd extends Extension { /** */ public function __construct() { parent::__construct('mysqli'); } protected function check() { $extension_loaded = extension_loaded('mysqli'); $driver_is_mysqlnd = defined('MYSQLI_OPT_INT_AND_FLOAT_NATIVE'); // We check for "mysqli_fetch_all" function to be sure that the used driver is "mysqlnd". // Indeed, it is mandatory to be able to use MYSQLI_OPT_INT_AND_FLOAT_NATIVE option. $this->validated = $extension_loaded && $driver_is_mysqlnd; if ($extension_loaded && $driver_is_mysqlnd) { $this->validation_messages[] = sprintf(__('%s extension is installed'), $this->name); } else if ($extension_loaded && !$driver_is_mysqlnd) { $this->validation_messages[] = sprintf(__('%s extension is installed but is not using mysqlnd driver'), $this->name); } else { $this->validation_messages[] = sprintf(__('%s extension is missing'), $this->name); } } }