make sure "S" is generated.
[AROS-Contrib.git] / bgui / bugs / bugs_pgsql.php
blob7ddde58035370c4902198508a724764661b3ee66
1 <?
2 /*
3 * bugs_pgsql.php
5 * @(#) $Header$
7 */
9 class bugs_pgsql_field_class
11 var $name="";
12 var $table="";
14 Function SetFieldResult($result,$field)
16 $this->name=pg_fieldname($result,$field);
17 $this->table="";
21 class bugs_pgsql_class
23 var $database_hostname="";
24 var $database_hostport="";
25 var $database_connection=0;
26 var $result_fields=array();
27 var $result_rows=array();
29 Function Connect($database_name)
31 global $bugs_database_host,$bugs_debug;
33 if($this->database_connection!=0)
35 $bugs_debug("The connection to the bugs database is already established!\n");
36 return(0);
38 if(($this->database_connection=@pg_pconnect($this->database_hostname,$this->database_hostport,$database_name))<=0)
40 $bugs_debug("It was not possible to connect to the bugs database!\n");
41 return(0);
43 return($this->database_connection);
46 Function Query($query)
48 global $bugs_debug;
50 if($this->database_connection<=0)
51 $bugs_debug("The connection to the bugs database is not yet established!\n");
52 return(pg_Exec($this->database_connection,$query));
55 Function Error()
57 return(pg_errormessage($this->database_connection));
60 Function CreateDatabase($name)
62 if($this->database_connection==0)
64 if(($link=pg_Connect($this->database_hostname,$this->database_hostport,"template1"))==0)
65 return(0);
67 else
68 $link=$this->database_connection;
69 $success=pg_Exec($link,"CREATE DATABASE $name");
70 if($this->database_connection==0)
71 pg_Close($link);
72 return($success);
75 Function Close()
77 if($this->database_connection!=0)
79 pg_Close($this->database_connection);
80 $this->database_connection=0;
84 Function SeparateDateTime()
86 return(1);
89 Function DateFormat()
91 return("m-d-Y");
94 Function ScanDate($date)
96 $scanned_date["month"]=strtok($date,"-");
97 $scanned_date["day"]=strtok("-");
98 $scanned_date["year"]=strtok(" ");
99 return($scanned_date);
102 Function TextFieldsNeedLength()
104 return(0);
107 Function SupportAutoIncrement()
109 return(0);
112 Function SupportSequences()
114 return(0);
117 Function NumberOfRows($result)
119 return(pg_NumRows($result));
122 Function FreeResult($result)
124 return(pg_FreeResult($result));
127 Function FetchRow($result,$current_row)
129 for($row=array(),$field=0;$field<pg_NumFields($result);$field++)
130 $row[$field]=pg_result($result,$current_row,$field);
131 for($field=0;$field<pg_NumFields($result);$field++)
132 $row[pg_FieldName($result,$field)]=pg_result($result,$current_row,$field);
133 return($row);
136 Function FetchNextRow($result)
138 if(!IsSet($this->result_rows["R$result"]))
139 $this->result_rows["R$result"]=0;
140 if($this->result_rows["R$result"]>=pg_NumRows($result))
141 return(0);
142 $current_row=$this->result_rows["R$result"]++;
143 return($this->FetchRow($result,$current_row));
146 Function NumberOfFields($result)
148 return(pg_NumFields($result));
151 Function FetchNextField($result)
153 if(!IsSet($this->result_fields["R$result"]["Object"]))
155 $this->result_fields["R$result"]["Object"]=new bugs_pgsql_field_class;
156 $this->result_fields["R$result"]["NextField"]=0;
158 if($this->result_fields["R$result"]["NextField"]>=pg_NumFields($result))
159 return(0);
160 $field=$this->result_fields["R$result"]["Object"];
161 $field->SetFieldResult($result,$this->result_fields["R$result"]["NextField"]);
162 $this->result_fields["R$result"]["NextField"]++;
163 return($field);
166 Function FetchArray($result)
168 return($this->FetchNextRow($result));
171 Function FetchResult($result,$row,$field)
173 return(pg_result($result,$row,$field));