4 /* This class is an abstraction class for the database used. Initially it was
5 * written for the gnucomo-project to support PostgreSQL, but ultimately
6 * it must be ready to be used with other database systems as well. The code
7 * will then be used to over come the specific differences between systems
11 var $db_host; //The host-name (or IP-address) to make the connection to
12 var $db_name; //The name of the database
13 var $db_user; //The username as known in the database
14 var $db_password; //The password used for entry
16 //Database information
17 var $db_connection; //The active database connection
18 var $db_result; //The result-set from a query
19 var $db_row_number; //The row-number that is currently active
20 var $db_result_row; //Array with in each element a field of the result
22 function db_connect ($connection_string)
24 /* This function makes the connection to the database. It will look at the selected DBMS.
25 * It will detected if password or hostname is missing and leave that out of the string.
26 * INPUT: NONE (The database connection string)
30 $this->db_connection = pg_pconnect($connection_string);
32 if ($this->have_db_connection() == FALSE)
34 syslog (LOG_INFO, "Failed to make a connection to Postgres");
35 die ("connection to Postgres failed\n");
39 syslog (LOG_INFO, "Connection to Postgres was made correctly");
43 function have_db_connection () {
44 /* This simple function verifies if a connection has succesfully been made
45 * Output: Returns TRUE if the connection was successfully (else it will be FALSE)
47 // PHP-> 4.2.Xcode if (pg_connection_status($this->db_connection) == PGSQL_CONNECTION_BAD) {
48 if ($this->db_connection == '') {
55 function query ($inp_sql_query) {
57 /* This function executes a query against the active database connection
59 * - $inp_sql_query: The is the string with the SQL to execute
60 * OUTPUT: Resultstring
62 $this->db_result = pg_exec ($this->db_connection, $inp_sql_query);
63 $this->db_row_number = 0;
67 function fetch_row() {
68 /* This function returns a single row as a result of a query if the last record has been reached
69 * the result will be FALSE otherwise it will be TRUE
70 * INPUT : NONE (everything is available within the class)
71 * OUTPUT : Success TRUE/FALSE
74 unset ($this->db_result_row);
75 if (pg_numrows($this->db_result) < $this->db_row_number) {
76 $this->db_row_number=-1;
79 $this->db_result_row = pg_fetch_row($this->db_result);
85 /* This functions returns the number of rows in a resultset
87 * OUTPUT : Number of rows (number)
89 return pg_numrows($this->db_result);
90 // 4.2.X return pg_num_rows($this->db_result);
93 function num_fields() {
94 /* This function returns the number of fields in the resultset
96 * OUTPUT : Number of fields (number)
98 return pg_numfields($this->db_result);
99 //4.2.X return pg_num_fields($this->db_result);