/[cvs]/nfo/php/libs/com.newsblob.phphtmllib/widgets/data_list/PGSQLDataListSource.inc
ViewVC logotype

Annotation of /nfo/php/libs/com.newsblob.phphtmllib/widgets/data_list/PGSQLDataListSource.inc

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Thu May 6 12:59:55 2004 UTC (20 years, 3 months ago) by jonen
Branch: MAIN
CVS Tags: HEAD
 updated to v2.3.0 - July 31, 2003

1 jonen 1.1 <?php
2    
3     /**
4     * This file contains the SQLDataListSource child class
5     * that uses PHP PostgreSQL functions. Quick hack of PEARDataListSource.inc
6     *
7     * @author Aris Basic <aris.basic@silencesoftware.com>
8     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
9     * @package phpHtmlLib
10     */
11    
12     /**
13     * This requires the SQLDataListSource
14     * parent class
15     *
16     */
17     include_once($phphtmllib."/widgets/data_list/SQLDataListSource.inc");
18    
19     /**
20     * This SQLDataListSource child class interacts with
21     * with a PostgreSQL Database using built in pg_*
22     * calls. This assumes that you have PostgreSQL
23     * support compiled into PHP
24     *
25     * How to use?
26     * in the DataList child's get_data_source() method
27     * you pass in the result of the pg_connect() call
28     * to the constructor.
29     *
30     * @author Aris Basic <aris.basic@silencesoftware.com>
31     * @author Walter A. Boring IV <waboring@buildabetterweb.com>
32     * @package phpHtmlLib
33     */
34     class PGSQLDataListSource extends SQLDataListSource {
35    
36     /**
37     * This var holds the Database connection reference
38     * that is used to do the sql queries
39     * It is assumed that the db is already
40     * connected to and is valid postgresi connection reference
41     */
42     var $_db = NULL;
43    
44     /**
45     * Result of pg_query()
46     */
47     var $_result = NULL;
48    
49    
50     /**
51     * The constructor is used to pass in the
52     * postgres connection reference
53     *
54     * @param result of pg_connect()
55     */
56     function PGSQLDataListSource( $db ) {
57     $this->set_db_object( $db );
58     }
59    
60     /**
61     * Set the DB object we will use
62     * to talk to the DB.
63     *
64     * @param object - $db the babw_db object.
65     *
66     */
67     function set_db_object( $db ) {
68     $this->_db = $db;
69     }
70    
71     function do_query() {
72     $this->_result = pg_query($this->_db,$this->_query);
73     if ( pg_result_status($this->_result)>4 ) {
74     $msg = pg_result_error($this->_result);
75     user_error("PGSQLDataListSource::pg_query() - query failed : ".$msg);
76     return false;
77     } else {
78     return true;
79     }
80     }
81    
82    
83    
84     /**
85     * This function gets the next data row
86     * from the query()
87     *
88     * @return array()
89     */
90     function get_next_data_row() {
91     return pg_fetch_assoc($this->_result);
92     }
93    
94     /**
95     * This function builds the limit
96     * clause portion of a DB query.
97     *
98     * @return string - the limit portion of
99     * the query.
100     */
101     function build_limit_clause($offset, $limit) {
102     if ( $this->get_limit() != -1 ) {
103     if ( $offset == '' || $offset == "none" ) {
104     $offset = 0;
105     }
106     $clause = " LIMIT $limit OFFSET $offset ";
107     return $clause;
108     } else {
109     return NULL;
110     }
111     }
112    
113     /**
114     * find the number of rows to be returned
115     * from a query from a table and where clause
116     *
117     * @param string $table - the table to count from
118     * @param string $where_clause - a where clause
119     *
120     * @return int the # of rows
121     */
122     function count($tables, $where_clause='', $count_clause='*') {
123     $query = "select count(".$count_clause.") as \"COUNT\" from ".$tables." ".$where_clause;
124     $result = pg_query($this->_db,$query);
125     if ( pg_result_error($result)>4 ) {
126     $msg = pg_result_error($result);
127     user_error("PGSQLDataListSource::count() - query failed : ".$msg);
128     }
129     $value = pg_fetch_assoc($result);
130     return($value ? (int)$value["COUNT"] : NULL);
131     }
132    
133     }
134    
135     ?>

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed