⚠️ PHP MySQL Driver Ontbreekt (pdo_mysql)

De PHP-installatie op uw server heeft momenteel de pdo_mysql extensie niet ingeschakeld. Zonder deze driver kan PHP geen verbinding maken met MariaDB.

Oplossing per servertype:
PHP Versie: " . PHP_VERSION . " • Momenteel actieve drivers: " . htmlspecialchars($driversList) . "
"); } $dsn = sprintf( 'mysql:host=%s;port=%s;dbname=%s;charset=%s', DB_HOST, DB_PORT, DB_NAME, DB_CHARSET ); $options = [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, PDO::ATTR_TIMEOUT => 5, ]; if (defined('PDO::MYSQL_ATTR_MULTI_STATEMENTS')) { $options[PDO::MYSQL_ATTR_MULTI_STATEMENTS] = true; } try { $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); // Zorg ervoor dat tabellen bestaan ensure_tables_exist($pdo); } catch (PDOException $e) { // Als de database zelf nog niet bestaat, probeer deze aan te maken indien gebruiker rechten heeft if ($e->getCode() == 1049) { try { $tempDsn = sprintf('mysql:host=%s;port=%s;charset=%s', DB_HOST, DB_PORT, DB_CHARSET); $tempPdo = new PDO($tempDsn, DB_USER, DB_PASS, $options); $tempPdo->exec(sprintf('CREATE DATABASE IF NOT EXISTS `%s` CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci', DB_NAME)); $pdo = new PDO($dsn, DB_USER, DB_PASS, $options); ensure_tables_exist($pdo); return $pdo; } catch (PDOException $ex) { die("Database verbindingsfout: Kan database '" . htmlspecialchars(DB_NAME) . "' niet aanmaken of vinden op " . htmlspecialchars(DB_HOST) . ". Maak deze handmatig aan in MariaDB."); } } die("

MariaDB Verbindingsfout (" . htmlspecialchars((string)$e->getCode()) . ")

" . htmlspecialchars($e->getMessage()) . "

Host: " . htmlspecialchars(DB_HOST) . "
Poort: " . htmlspecialchars(DB_PORT) . "
Database: " . htmlspecialchars(DB_NAME) . "
Gebruiker: " . htmlspecialchars(DB_USER) . "
"); } } return $pdo; } /** * Zorgt ervoor dat alle tabellen uit schema.sql aanwezig zijn in MariaDB */ function ensure_tables_exist(PDO $pdo): void { try { $result = $pdo->query("SHOW TABLES LIKE 'users'"); if ($result->rowCount() === 0) { $schemaFile = __DIR__ . '/../schema.sql'; if (file_exists($schemaFile)) { $sql = file_get_contents($schemaFile); // Splits op puntkomma om elk CREATE TABLE statement apart uit te voeren $statements = array_filter(array_map('trim', explode(';', $sql))); foreach ($statements as $stmt) { if (!empty($stmt)) { $pdo->exec($stmt); } } } } } catch (Exception $e) { error_log("Fout bij uitvoeren schema.sql: " . $e->getMessage()); } }