|
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.
|