@@ -291,7 +291,6 @@ public function setDatabase($db = null) {
291291 * Establish a database connection
292292 * @param string $db the database slug
293293 * @return object the PDO object
294- * @todo support port #s and test on each database
295294 */
296295 public function &connect ($ db = null ) {
297296
@@ -308,24 +307,24 @@ public function &connect($db = null) {
308307
309308 try {
310309 if ($ db ->type == 'mysql ' ) {
311- $ dbh = new PDO ("mysql:host= {$ db ->server };dbname= {$ db ->name }" , $ db ->username , $ db ->password );
310+ $ dbh = new PDO ("mysql:host= {$ db ->server };port= { $ db -> port } ; dbname= {$ db ->name }" , $ db ->username , $ db ->password );
312311 } elseif ($ db ->type == 'pgsql ' ) {
313- $ dbh = new PDO ("pgsql:host= {$ db ->server };dbname= {$ db ->name }" , $ db ->username , $ db ->password );
312+ $ dbh = new PDO ("pgsql:host= {$ db ->server };port= { $ db -> port } ; dbname= {$ db ->name }" , $ db ->username , $ db ->password );
314313 } elseif ($ db ->type == 'mssql ' ) {
315- $ dbh = new PDO ("sqlsrv:Server= {$ db ->server };Database= {$ db ->name }" , $ db ->username , $ db ->password );
314+ $ dbh = new PDO ("sqlsrv:Server= {$ db ->server }, { $ db -> port } ;Database= {$ db ->name }" , $ db ->username , $ db ->password );
316315 } elseif ($ db ->type == 'sqlite ' ) {
317316 $ dbh = new PDO ("sqlite:/ {$ db ->name }" );
318317 } elseif ($ db ->type == 'oracle ' ) {
319318 $ dbh = new PDO ("oci:dbname= {$ db ->name }" );
320319 } elseif ($ db ->type == 'ibm ' ) {
321320 // May require a specified port number as per http://php.net/manual/en/ref.pdo-ibm.connection.php.
322- $ dbh = new PDO ("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE= {$ db ->name };HOSTNAME= {$ db ->server };PROTOCOL=TCPIP; " , $ db ->username , $ db ->password );
321+ $ dbh = new PDO ("ibm:DRIVER={IBM DB2 ODBC DRIVER};DATABASE= {$ db ->name };PORT= { $ db -> port } ; HOSTNAME= {$ db ->server };PROTOCOL=TCPIP; " , $ db ->username , $ db ->password );
323322 } elseif (($ db ->type == 'firebird ' ) || ($ db ->type == 'interbase ' )) {
324- $ dbh = new PDO ("firebird:dbname= {$ db ->name };host= {$ db ->server }" );
323+ $ dbh = new PDO ("firebird:dbname= {$ db ->name };host= {$ db ->server };port= { $ db -> port } ; " );
325324 } elseif ($ db ->type == '4D ' ) {
326- $ dbh = new PDO ("4D:host= {$ db ->server }" , $ db ->username , $ db ->password );
325+ $ dbh = new PDO ("4D:host= {$ db ->server };port= { $ db -> port } ;dbname= { $ db -> name } " , $ db ->username , $ db ->password );
327326 } elseif ($ db ->type == 'informix ' ) {
328- $ dbh = new PDO ("informix:host= {$ db ->server }; database= {$ db ->name }; server= {$ db ->server }" , $ db ->username , $ db ->password );
327+ $ dbh = new PDO ("informix:host= {$ db ->server };port= { $ db -> port } ; database= {$ db ->name };server= {$ db ->server }" , $ db ->username , $ db ->password );
329328 } else {
330329 Response::error ('Unknown database type. ' );
331330 }
0 commit comments