\n\n"; echo "($nfun) $str\n\n"; exit; } // function FatalQueryError( $qry, $str ) { echo "\n\n"; echo "(QueryError) $str\nDetails: $qry\n\n"; exit; } // function DbConnect( $hostname, $port, $database, $username, $password ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": $opt = "dbname=$database host=$hostname user=$username password=$password authtype=password"; $cnn = pg_connect( $opt ); if (!$cnn) FatalError("Error connecting to $hostname", 'DbConnect' ); $opt = ""; return $cnn; break; case "mysql": $cnn = mysql_connect( $hostname, $username, $password ); if (!$cnn) FatalError("Error connecting to $hostname", 'DbConnect' ); if ( ! mysql_select_db($database, $cnn) ) { FatalError("Error selecting database $dataname", 'DbConnect' ); } return $cnn; break; default: FatalError( 'Driver: '.$dblib_driver.' unknown', 'DbConnect' ); } } // function DbPConnect( $hostname, $port, $database, $username, $password ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": $opt = "dbname=$database host=$hostname user=$username password=$password authtype=password"; $cnn = pg_pconnect( $opt ); if (!$cnn) FatalError("Error connecting to $hostname", 'DbPConnect' ); $opt = ""; return $cnn; break; case "mysql": $cnn = mysql_pconnect( $hostname, $username, $password ); if (!$cnn) FatalError("Error connecting to $hostname", 'DbPConnect' ); if ( ! mysql_select_db($database, $cnn) ) { FatalError("Error selecting database $dataname", 'DbPConnect' ); } return $cnn; break; default: FatalError( "Driver '$dblib_driver' unknown", 'DbPConnect' ); } } // function DbQuery( $cnn, $qry ) { global $dblib_driver, $recno; $recno=0; switch($dblib_driver) { case "pgsql": $qry = eregi_replace( 'NOW\(\)', 'NOW()::datetime', $qry ); $qry = eregi_replace( 'limit .*', '', $qry ); $rs = pg_Exec( $cnn, stripslashes($qry) ); if (!$rs) FatalQueryError( $qry, pg_ErrorMessage($cnn) ); return $rs; break; case "mysql": $rs = mysql_query( $qry, $cnn ); if (!$rs) FatalQueryError( $qry, mysql_error($cnn) ); return $rs; break; default: FatalError( "Driver $dblib_driver unknown", 'RunQuery' ); } } function DbQuerySoft( $cnn, $qry ) { // Like DbQuery but not exit on errors global $dblib_driver, $recno; $recno=0; switch($dblib_driver) { case "pgsql": $rs = @pg_Exec( $cnn, stripslashes($qry) ); return $rs; break; case "mysql": $rs = @mysql_query( $qry, $cnn ); return $rs; break; default: FatalError( "Driver $dblib_driver unknown", 'RunQuery' ); } } // function DbQueryResult( $cnn, $res ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_cmdTuples( $res ); break; case "mysql": return mysql_affected_rows( $cnn ); break; default: FatalError( "Driver $dblib_driver unknown", 'QueryResult' ); } } // function DbQuerySize( $res ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_NumRows( $res ); break; case "mysql": return mysql_num_rows( $res ); break; default: FatalError( "Driver $dblib_driver unknown", 'QueryResult' ); } } // function DbGetRow( $res, $nrow ) { global $dblib_driver, $recno; switch($dblib_driver) { case "pgsql": { $iret = pg_Fetch_Array( $res, $nrow ); $recno++; return $iret; break; } case "mysql": { if ($nrow!=$recno) mysql_data_seek($res, $nrow); $iret = mysql_Fetch_Array( $res ); $recno++; return $iret; break; } default: FatalError( "Driver $dblib_driver unknown", 'QueryRow' ); } } // function DbExtractRow( $res, $nrow, $prefix ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": { $iret = pg_Fetch_Array( $res, $nrow ); if (!$iret) return false; $l = pg_numfields($res); $recno++; // for ($i=0;$i<$l;$i++) { $n = $prefix . pg_fieldname($res,$i); $v = $iret[$i]; if (is_string($v)) { $GLOBALS[$n] = ''. StripSlashes($v); } else { $GLOBALS[$n] = $v; } } return true; break; } case "mysql": if ($nrow!=$recno) mysql_data_seek($res, $nrow); $iret = mysql_Fetch_Array( $res ); if (!$iret) return false; $l = mysql_num_fields($res); $recno++; // for ($i=0;$i<$l;$i++) { $n = $prefix . mysql_field_name($res,$i); $v = $iret[$i]; if (is_string($v)) { $GLOBALS[$n] = ''. StripSlashes($v); } else { $GLOBALS[$n] = $v; } } return true; break; default: FatalError( "Driver $dblib_driver unknown", 'QueryRow' ); return false; } return false; } // function DbDestroyQuery( $res ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_FreeResult( $res ); break; case "msql": return mysql_free_result( $res ); break; default: FatalError( "Driver $dblib_driver unknown", 'DestroyQuery' ); } } // function DbClose( $cnn ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_Close( $cnn ); break; case "mysql": return mysql_Close( $cnn ); break; default: FatalError( "Driver $dblib_driver unknown", 'DbClose' ); } } // function DbQueryFields( $res ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_numfields($res); break; case "mysql": return mysql_num_fields($res); break; default: FatalError( "Driver $dblib_driver unknown", 'DbQueryFields' ); } } // function DbFieldName( $res, $i ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_fieldname($res,$i); break; case "mysql": return mysql_field_name($res,$i); break; default: FatalError( "Driver $dblib_driver unknown", 'DbFieldName' ); } } // function DbFieldType( $res, $i ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_FieldType($res,$i); break; case "mysql": return mysql_field_type($res,$i); break; default: FatalError( "Driver $dblib_driver unknown", 'DbFieldType' ); } } // function DbFieldSize( $res, $i ) { global $dblib_driver; switch($dblib_driver) { case "pgsql": return pg_FieldSize($res,$i); break; case "mysql": return mysql_field_len($res,$i); break; default: FatalError( "Driver $dblib_driver unknown", 'DbFieldType' ); } } // function DbPrintGlobals() { while ( $e = each($GLOBALS) ) { echo $e[0] .'='. $e[1]. "
\n"; } } // End of dblib.inc ?>