diff options
Diffstat (limited to 'session')
| -rw-r--r-- | session/adodb-session2.php | 46 |
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); |
