From 25feeaf22275972ddf49a9f142cd8aad92364c0d Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Fri, 6 Jun 2025 10:58:36 +0200 Subject: [PATCH 1/2] Require DB_NAME to be set only in the new driver --- wp-includes/sqlite/class-wp-sqlite-db.php | 5 +++++ wp-includes/sqlite/db.php | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/wp-includes/sqlite/class-wp-sqlite-db.php b/wp-includes/sqlite/class-wp-sqlite-db.php index 2de3e47f..d8fbe18c 100644 --- a/wp-includes/sqlite/class-wp-sqlite-db.php +++ b/wp-includes/sqlite/class-wp-sqlite-db.php @@ -307,6 +307,11 @@ public function db_connect( $allow_bail = true ) { $pdo = $GLOBALS['@pdo']; } if ( defined( 'WP_SQLITE_AST_DRIVER' ) && WP_SQLITE_AST_DRIVER ) { + if ( null === $this->dbname || '' === $this->dbname ) { + $this->bail( 'The database name was not set.', 'db_connect_fail' ); + return false; + } + require_once __DIR__ . '/../../wp-includes/parser/class-wp-parser-grammar.php'; require_once __DIR__ . '/../../wp-includes/parser/class-wp-parser.php'; require_once __DIR__ . '/../../wp-includes/parser/class-wp-parser-node.php'; diff --git a/wp-includes/sqlite/db.php b/wp-includes/sqlite/db.php index bb00c335..e60e5f02 100644 --- a/wp-includes/sqlite/db.php +++ b/wp-includes/sqlite/db.php @@ -66,5 +66,5 @@ require_once $crosscheck_tests_file_path; $GLOBALS['wpdb'] = new WP_SQLite_Crosscheck_DB( DB_NAME ); } else { - $GLOBALS['wpdb'] = new WP_SQLite_DB( DB_NAME ); + $GLOBALS['wpdb'] = new WP_SQLite_DB( defined( 'DB_NAME' ) ? DB_NAME : '' ); } From 0332e61783cbeffeeea739a283afe7a46ecceb32 Mon Sep 17 00:00:00 2001 From: Jan Jakes Date: Fri, 6 Jun 2025 12:31:19 +0200 Subject: [PATCH 2/2] Improve comment --- wp-includes/sqlite/class-wp-sqlite-db.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/wp-includes/sqlite/class-wp-sqlite-db.php b/wp-includes/sqlite/class-wp-sqlite-db.php index d8fbe18c..6ac951f3 100644 --- a/wp-includes/sqlite/class-wp-sqlite-db.php +++ b/wp-includes/sqlite/class-wp-sqlite-db.php @@ -308,7 +308,10 @@ public function db_connect( $allow_bail = true ) { } if ( defined( 'WP_SQLITE_AST_DRIVER' ) && WP_SQLITE_AST_DRIVER ) { if ( null === $this->dbname || '' === $this->dbname ) { - $this->bail( 'The database name was not set.', 'db_connect_fail' ); + $this->bail( + 'The database name was not set. The SQLite driver requires a database name to be set to emulate MySQL information schema tables.', + 'db_connect_fail' + ); return false; }