From: <var...@us...> - 2021-07-02 16:13:17
|
Revision: 10343 http://sourceforge.net/p/phpwiki/code/10343 Author: vargenau Date: 2021-07-02 16:13:10 +0000 (Fri, 02 Jul 2021) Log Message: ----------- PDO: allow "mysqli" as well as "mysql" for DSN Modified Paths: -------------- trunk/lib/WikiDB/backend/PDO.php Modified: trunk/lib/WikiDB/backend/PDO.php =================================================================== --- trunk/lib/WikiDB/backend/PDO.php 2021-07-02 09:24:10 UTC (rev 10342) +++ trunk/lib/WikiDB/backend/PDO.php 2021-07-02 16:13:10 UTC (rev 10343) @@ -31,7 +31,6 @@ class WikiDB_backend_PDO extends WikiDB_backend { - function __construct($dbparams) { $this->_dbparams = $dbparams; @@ -46,6 +45,9 @@ * e.g: odbc:DSN=SAMPLE;UID=db2inst1;PWD=ibmdb2, mysql:host=127.0.0.1;dbname=testdb */ $driver = $parsed['phptype']; + if ($driver == "mysqli") { + $driver = "mysql"; + } unset($parsed['phptype']); unset($parsed['dbsyntax']); $dbparams['dsn'] = $driver . ":"; @@ -54,8 +56,7 @@ } $this->_dbh->database = $parsed['database']; // mysql needs to map database=>dbname, hostspec=>host. TODO for the others. - $dsnmap = array('mysql' => array('database' => 'dbname', 'hostspec' => 'host') - ); + $dsnmap = array('mysql' => array('database' => 'dbname', 'hostspec' => 'host')); foreach (array('protocol', 'hostspec', 'port', 'socket', 'database') as $option) { if (!empty($parsed[$option])) { $optionname = (isset($dsnmap[$driver][$option]) and !isset($parsed[$optionname])) @@ -89,14 +90,6 @@ } try { - // try to load it dynamically (unix only) - if (!loadPhpExtension("pdo_$driver")) { - echo $GLOBALS['php_errormsg'], "<br>\n"; - trigger_error(sprintf("dl() problem: Required extension '%s' could not be loaded!", - "pdo_$driver"), - E_USER_WARNING); - } - // persistent is defined as DSN option, or with a config value. // phptype://username:password@hostspec/database?persistent=false $this->_dbh = new PDO($dbparams['dsn'], @@ -1505,7 +1498,7 @@ $parsed['dbsyntax'] = $str; } - if (!count($dsn)) { + if ($dsn == null) { return $parsed; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |