#23720 [Opn->Csd]: DB::Connect does not accept string for $dsn when using pgsql

From: Date: Tue, 20 May 2003 15:44:05 +0000
Subject: #23720 [Opn->Csd]: DB::Connect does not accept string for $dsn when using pgsql
References: 1  Groups: php.pear.dev 
Request: Send a blank email to pear-dev+get-16517@lists.php.net to get a copy of this message
ID: 23720 Updated by: lsmith@php.net Reported By: brian at onlineinfo dot net -Status: Open +Status: Closed Bug Type: PEAR related Operating System: Debian, Solaris PHP Version: 4.3.1 Assigned To: lsmith New Comment: this is the expected behavior. You should be able to use DB::connect() with your custom class, which handles string dsn and options for convinience. Previous Comments: ------------------------------------------------------------------------ [2003-05-20 10:23:37] brian at onlineinfo dot net Here is the connect code we are using: $db = DB::factory('pgsql_ex'); if (DB::isError($db)) return $db; $connect = $db->Connect($dsn, $persistent = TRUE); if (DB::isError($connect)) return $connect; $db->setFetchMode(DB_FETCHMODE_ASSOC); $db->setOption('seqname_format','%s'); return $db; (pgsql_ex is a small class extending DB_pgsql that adds a metadata method) ------------------------------------------------------------------------ [2003-05-20 10:12:38] lsmith@php.net Are you trying to switch the dsn after object creation with the factory method? This feature is not supported as far as I know. DB_pgsql::connect() should not be called by the user. ------------------------------------------------------------------------ [2003-05-20 10:01:44] brian at onlineinfo dot net When passing a valid DSN to DB::Connect and connecting to pgsql, DB_Pgsql expects the dsn to be an array instead of a string. The result is a broken connect string since PHP will happily treat the string as an array. The solution is to replace: $this->dsn = $dsninfo; with: if (is_array($dsninfo)) { $this->dsn = $dsninfo; } else { $this->dsn = $dsninfo = DB::parseDSN($dsninfo); } in the connect method of DB/pgsql.php. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=23720&edit=1

« previous php.pear.dev (#16517) next »