A first stab at using DBX for database abstraction. Works with Postgres currently.
authorpnixon <pnixon>
Tue, 15 Mar 2005 17:01:43 +0000 (17:01 +0000)
committerpnixon <pnixon>
Tue, 15 Mar 2005 17:01:43 +0000 (17:01 +0000)
dialup_admin/lib/sql/drivers/dbx/functions.php3 [new file with mode: 0644]

diff --git a/dialup_admin/lib/sql/drivers/dbx/functions.php3 b/dialup_admin/lib/sql/drivers/dbx/functions.php3
new file mode 100644 (file)
index 0000000..655aedd
--- /dev/null
@@ -0,0 +1,134 @@
+<?php
+function da_sql_host_connect($server,$config)
+{
+       if ($config[sql_use_http_credentials] == 'yes'){
+               global $HTTP_SERVER_VARS;
+               $SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
+               $SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
+       }
+       else{
+               $SQL_user = $config[sql_username];
+               $SQL_passwd = $config[sql_password];
+       }
+       // FIXME: This function is still Postgres specific. Needs to be configurable.
+       return @dbx_connect(DBX_PGSQL, "$server", "$config[sql_database]",
+                       "$SQL_user", "$SQL_passwd", DBX_PERSISTENT);
+}
+
+function da_sql_connect($config)
+{
+       if ($config[sql_use_http_credentials] == 'yes'){
+               global $HTTP_SERVER_VARS;
+               $SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
+               $SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
+       }
+       else{
+               $SQL_user = $config[sql_username];
+               $SQL_passwd = $config[sql_password];
+       }
+       // FIXME: This function is still Postgres specific. Needs to be configurable.
+       return @dbx_connect(DBX_PGSQL, "$server", "$config[sql_database]",
+                       "$SQL_user", "$SQL_passwd");
+}
+
+function da_sql_pconnect($config)
+{
+       if ($config[sql_use_http_credentials] == 'yes'){
+               global $HTTP_SERVER_VARS;
+               $SQL_user = $HTTP_SERVER_VARS["PHP_AUTH_USER"];
+               $SQL_passwd = $HTTP_SERVER_VARS["PHP_AUTH_PW"];
+       }
+       else{
+               $SQL_user = $config[sql_username];
+               $SQL_passwd = $config[sql_password];
+       }
+       // FIXME: This function is still Postgres specific. Needs to be configurable.
+       return @dbx_connect(DBX_PGSQL, "$server", "$config[sql_database]",
+                       "$SQL_user", "$SQL_passwd", DBX_PERSISTENT);
+}
+
+function da_sql_close($link,$config)
+{
+       @dbx_close($link);
+}
+
+function da_sql_escape_string($string)
+{
+       return addslashes($string);
+}
+
+function da_sql_query($link,$config,$query)
+{
+       if ($config[sql_debug] == 'true') {
+               print "<b>DEBUG(SQL,PG DRIVER): Query: <i>$query</i></b><br>\n";
+       }
+       return @dbx_query($link,$query);
+}
+
+function da_sql_num_rows($result,$config)
+{
+       if ($config[sql_debug] == 'true')
+               print "<b>DEBUG(SQL,PG DRIVER): Query Result: Num rows:: " . $result->rows . "</b><br>\n";
+       return $result->rows;
+}
+
+$dbx_global_record_counter = array() ;
+function da_sql_fetch_array($result,$config)
+{
+
+       global $dbx_global_record_counter;
+       if (!$dbx_global_record_counter[$result->handle]){
+               $dbx_global_record_counter[$result->handle] = 0;
+       }
+
+       if ($dbx_global_record_counter[$result->handle] <= $result->rows - 1 ){
+               return $result->data[$dbx_global_record_counter[$result->handle]++];
+       } elseif ($dbx_global_record_counter[$result->handle] > $result->rows - 1 ) {
+               $dbx_global_record_counter[$result->handle]++;
+               return NULL;
+       } else {
+               $dbx_global_record_counter[$result->handle]++;
+               return FALSE;
+       }
+}
+
+function da_sql_affected_rows($link,$result,$config)
+{
+       // FIXME: This function is still Postgres specific.
+       if ($config[sql_debug] == 'true')
+               print "<b>DEBUG(SQL,PG DRIVER): Query Result: Affected rows:: " . @pg_cmdtuples($result->handle) . "</b><br>\n";
+       return @pg_cmdtuples($result->handle);
+}
+
+function da_sql_list_fields($table,$link,$config)
+{
+       $res = @dbx_query($link,"SELECT * FROM ".$table." LIMIT 1 ;"); 
+       if ($res){
+               $fields[num] = $res->cols;
+       }
+       $res = @dbx_query($link,"SELECT * FROM ".$table." LIMIT 1 ;");
+       if ($res)
+               $fields[res] = $res->info[name];
+       else
+               return NULL;
+
+       return $fields;
+}
+
+function da_sql_num_fields($fields,$config)
+{
+       if ($fields)
+               return $fields[num];
+}
+
+function da_sql_field_name($fields,$num,$config)
+{
+       if ($fields)
+               return $fields[res][$num];
+}
+
+function da_sql_error($link,$config)
+{
+       return dbx_error($link);
+}
+?>