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 () {
23 /* This function makes the connection to the database. It will look at the selected DBMS.
24 * It will detected if password or hostname is missing and leave that out of the string.
25 * INPUT: NONE (all defined in the class)
28 $local_connection_string = '';
29 if ($this->db_host == '') {
30 $local_connection_string .= "host=$this->db_host ";
33 $local_connection_string = "dbname=$this->db_name user=$this->db_user ";
34 if ($this->db_password == '') {
35 $local_connection_string .= $this->db_password;
38 $this->db_connection = @pg_pconnect($local_connection_string);
39 if ($this->have_db_connection() == "FALSE") {
40 syslog (LOG_INFO, "Failed to make a connection to Postgres");
41 die ("connection to Postgres failed");
43 syslog (LOG_INFO, "Connection to Postgres was made correctly");
47 function have_db_connection () {
48 /* This simple function verifies if a connection has succesfully been made
49 * Output: Returns TRUE if the connection was successfully (else it will be FALSE)
51 // PHP-> 4.2.Xcode if (pg_connection_status($this->db_connection) == PGSQL_CONNECTION_BAD) {
52 if ($this->db_connection == '') {
59 function query ($inp_sql_query) {
61 /* This function executes a query against the active database connection
63 * - $inp_sql_query: The is the string with the SQL to execute
64 * OUTPUT: Resultstring
66 $this->db_result = pg_exec ($this->db_connection, $inp_sql_query);
67 $this->db_row_number = 0;
71 function fetch_row() {
72 /* This function returns a single row as a result of a query if the last record has been reached
73 * the result will be FALSE otherwise it will be TRUE
74 * INPUT : NONE (everything is available within the class)
75 * OUTPUT : Success TRUE/FALSE
78 unset ($this->db_result_row);
79 if (pg_numrows($this->db_result) < $this->db_row_number) {
80 $this->db_row_number=-1;
83 $this->db_result_row = pg_fetch_row($this->db_result);
89 /* This functions returns the number of rows in a resultset
91 * OUTPUT : Number of rows (number)
93 return pg_numrows($this->db_result);
94 // 4.2.X return pg_num_rows($this->db_result);
97 function num_fields() {
98 /* This function returns the number of fields in the resultset
100 * OUTPUT : Number of fields (number)
102 return pg_numfields($this->db_result);
103 //4.2.X return pg_num_fields($this->db_result);