]> git.joonet.de Git - adminer.git/commitdiff
URL parameter ?ext=pdo to force using PDO
authorJakub Vrana <jakub@vrana.cz>
Sat, 22 Mar 2025 05:15:57 +0000 (06:15 +0100)
committerJakub Vrana <jakub@vrana.cz>
Sat, 22 Mar 2025 07:18:39 +0000 (08:18 +0100)
CHANGELOG.md
adminer/drivers/mssql.inc.php
adminer/drivers/mysql.inc.php
adminer/drivers/oracle.inc.php
adminer/drivers/pgsql.inc.php
adminer/drivers/sqlite.inc.php
adminer/include/bootstrap.inc.php
adminer/include/functions.inc.php

index 846e89a11ec231bab826c089505eeeb2881af27b..c8793bfb19148ea3224ce44b328dfb1ddc05c56e 100644 (file)
@@ -2,6 +2,7 @@
 - Confirm before exiting edited edit form
 - Display collation at table structure if different from table
 - Ctrl+click in select moves the cursor in modern browsers
+- URL parameter ?ext=pdo to force using PDO
 - PostgreSQL: Display auto_increment of inserted rows
 - PostgreSQL: Display description of system variables
 - PostgreSQL: Avoid warning about crdb_version (bug #924, regression from 5.0.5)
index 9e49a3a28c520b853f23df87a795ee640325a0f7..80742ccc90e170e08401ddb2659f210ef1c99d21 100644 (file)
@@ -11,7 +11,7 @@ $drivers["mssql"] = "MS SQL";
 
 if (isset($_GET["mssql"])) {
        define('Adminer\DRIVER', "mssql");
-       if (extension_loaded("sqlsrv")) {
+       if (extension_loaded("sqlsrv") && $_GET["ext"] != "pdo") {
                class Db {
                        public $extension = "sqlsrv", $server_info, $affected_rows, $errno, $error;
                        private $link, $result;
index 88d7fe05d0731bc815b4d3c413dbf53a2c2fcd00..669adca4abac180ec5c58c1fa7d317795dc812d7 100644 (file)
@@ -6,7 +6,7 @@ $drivers = array("server" => "MySQL / MariaDB") + $drivers;
 if (!defined('Adminer\DRIVER')) {
        define('Adminer\DRIVER', "server"); // server - backwards compatibility
        // MySQLi supports everything, MySQL doesn't support multiple result sets, PDO_MySQL doesn't support orgtable
-       if (extension_loaded("mysqli")) {
+       if (extension_loaded("mysqli") && $_GET["ext"] != "pdo") {
                class Db extends \MySQLi {
                        public $extension = "MySQLi";
 
index bf65a90ffaa2d40b588d762c79026a6c3dd65ffa..cb07fcb2dee9217ba3137a756851d1f2f43c77be 100644 (file)
@@ -5,7 +5,7 @@ $drivers["oracle"] = "Oracle (beta)";
 
 if (isset($_GET["oracle"])) {
        define('Adminer\DRIVER', "oracle");
-       if (extension_loaded("oci8")) {
+       if (extension_loaded("oci8") && $_GET["ext"] != "pdo") {
                class Db {
                        public $extension = "oci8", $server_info, $affected_rows, $errno, $error;
                        public $_current_db;
index c29c7b31d9f3ed932d413bf854ed95649ebc15a5..5612c5a472ef233ed52281ad8893aa10249a4311 100644 (file)
@@ -5,7 +5,7 @@ $drivers["pgsql"] = "PostgreSQL";
 
 if (isset($_GET["pgsql"])) {
        define('Adminer\DRIVER', "pgsql");
-       if (extension_loaded("pgsql")) {
+       if (extension_loaded("pgsql") && $_GET["ext"] != "pdo") {
                class Db {
                        public $extension = "PgSQL", $server_info, $affected_rows, $error, $timeout;
                        private $link, $result, $string, $database = true;
index a4352150c3bf0532306450d3a1c30b9842bbf09b..3b9fc0a9538d1de42252a65ea18f2cd654a3da80 100644 (file)
@@ -5,7 +5,7 @@ $drivers["sqlite"] = "SQLite";
 
 if (isset($_GET["sqlite"])) {
        define('Adminer\DRIVER', "sqlite");
-       if (class_exists("SQLite3")) {
+       if (class_exists("SQLite3") && $_GET["ext"] != "pdo") {
 
                class SqliteDb {
                        public $extension = "SQLite3", $server_info, $affected_rows, $errno, $error;
index 19ec69dc4e4ce75755d6ee1f2e9274a75f670fd4..14b5d54d1e0250509969fd876f239df559a8b805 100644 (file)
@@ -98,6 +98,7 @@ define(
        preg_replace('~\?.*~', '', relative_uri()) . '?'
                . (sid() ? SID . '&' : '')
                . (SERVER !== null ? DRIVER . "=" . urlencode(SERVER) . '&' : '')
+               . ($_GET["ext"] ? "ext=" . urlencode($_GET["ext"]) . '&' : '')
                . (isset($_GET["username"]) ? "username=" . urlencode($_GET["username"]) . '&' : '')
                . (DB != "" ? 'db=' . urlencode(DB) . '&' . (isset($_GET["ns"]) ? "ns=" . urlencode($_GET["ns"]) . "&" : "") : '')
 );
index 4e995ed40feb7382b063fff077cff67fe66d869b..d9988f333077287b506db1e5c34ca9c2887f3708 100644 (file)
@@ -457,7 +457,7 @@ function set_session($key, $val) {
 function auth_url($vendor, $server, $username, $db = null) {
        global $drivers;
        $uri = remove_from_uri(implode("|", array_keys($drivers))
-               . "|username|"
+               . "|username|ext|"
                . ($db !== null ? "db|" : "")
                . ($vendor == 'mssql' || $vendor == 'pgsql' ? "" : "ns|") // we don't have access to support() here
                . session_name())
@@ -466,6 +466,7 @@ function auth_url($vendor, $server, $username, $db = null) {
        return "$match[1]?"
                . (sid() ? SID . "&" : "")
                . ($vendor != "server" || $server != "" ? urlencode($vendor) . "=" . urlencode($server) . "&" : "")
+               . ($_GET["ext"] ? "ext=" . urlencode($_GET["ext"]) . "&" : "")
                . "username=" . urlencode($username)
                . ($db != "" ? "&db=" . urlencode($db) : "")
                . ($match[2] ? "&$match[2]" : "")