summaryrefslogtreecommitdiff
path: root/session
diff options
context:
space:
mode:
Diffstat (limited to 'session')
-rw-r--r--session/adodb-session2.php46
1 files changed, 31 insertions, 15 deletions
diff --git a/session/adodb-session2.php b/session/adodb-session2.php
index 71a29b7a..82b728c0 100644
--- a/session/adodb-session2.php
+++ b/session/adodb-session2.php
@@ -564,29 +564,45 @@ class ADODB_Session {
# assert('$database');
# assert('$driver');
# assert('$host');
-
- $conn = ADONewConnection($driver);
-
- if ($debug) {
- $conn->debug = true;
- ADOConnection::outp( " driver=$driver user=$user db=$database ");
- }
-
- if (empty($conn->_connectionID)) { // not dsn
+ if (strpos($driver, 'pdo_') === 0){
+ $conn = ADONewConnection('pdo');
+ $driver = str_replace('pdo_', '', $driver)
+ $dsn=$driver+':'+'hostname='+$host+';database='+$database+';'
+ $db->connect($dsn,$user,$password);
if ($persist) {
switch($persist) {
default:
- case 'P': $ok = $conn->PConnect($host, $user, $password, $database); break;
- case 'C': $ok = $conn->Connect($host, $user, $password, $database); break;
- case 'N': $ok = $conn->NConnect($host, $user, $password, $database); break;
+ case 'P': $ok = $conn->PConnect($dsn,$user,$password); break;
+ case 'C': $ok = $conn->Connect($dsn,$user,$password); break;
+ case 'N': $ok = $conn->NConnect($dsn,$user,$password); break;
}
} else {
- $ok = $conn->Connect($host, $user, $password, $database);
+ $ok = $conn->Connect($dsn,$user,$password);
+ }
+ }else{
+ $conn = ADONewConnection($driver);
+ if ($debug) {
+ $conn->debug = true;
+ ADOConnection::outp( " driver=$driver user=$user db=$database ");
+ }
+
+ if (empty($conn->_connectionID)) { // not dsn
+ if ($persist) {
+ switch($persist) {
+ default:
+ case 'P': $ok = $conn->PConnect($host, $user, $password, $database); break;
+ case 'C': $ok = $conn->Connect($host, $user, $password, $database); break;
+ case 'N': $ok = $conn->NConnect($host, $user, $password, $database); break;
+ }
+ } else {
+ $ok = $conn->Connect($host, $user, $password, $database);
+ }
+ } else {
+ $ok = true; // $conn->_connectionID is set after call to ADONewConnection
}
- } else {
- $ok = true; // $conn->_connectionID is set after call to ADONewConnection
}
+
if ($ok) $GLOBALS['ADODB_SESS_CONN'] = $conn;
else
ADOConnection::outp('<p>Session: connection failed</p>', false);