Take two:
[www-register-wizard.git] / database / drivers / sqlite / sqlite_result.php
1 <?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');\r
2 /**\r
3  * CodeIgniter\r
4  *\r
5  * An open source application development framework for PHP 4.3.2 or newer\r
6  *\r
7  * @package             CodeIgniter\r
8  * @author              ExpressionEngine Dev Team\r
9  * @copyright   Copyright (c) 2008, EllisLab, Inc.\r
10  * @license             http://codeigniter.com/user_guide/license.html\r
11  * @link                http://codeigniter.com\r
12  * @since               Version 1.0\r
13  * @filesource\r
14  */\r
15 \r
16 // ------------------------------------------------------------------------\r
17 \r
18 /**\r
19  * SQLite Result Class\r
20  *\r
21  * This class extends the parent result class: CI_DB_result\r
22  *\r
23  * @category    Database\r
24  * @author              ExpressionEngine Dev Team\r
25  * @link                http://codeigniter.com/user_guide/database/\r
26  */\r
27 class CI_DB_sqlite_result extends CI_DB_result {\r
28         \r
29         /**\r
30          * Number of rows in the result set\r
31          *\r
32          * @access      public\r
33          * @return      integer\r
34          */\r
35         function num_rows()\r
36         {\r
37                 return @sqlite_num_rows($this->result_id);\r
38         }\r
39         \r
40         // --------------------------------------------------------------------\r
41 \r
42         /**\r
43          * Number of fields in the result set\r
44          *\r
45          * @access      public\r
46          * @return      integer\r
47          */\r
48         function num_fields()\r
49         {\r
50                 return @sqlite_num_fields($this->result_id);\r
51         }\r
52 \r
53         // --------------------------------------------------------------------\r
54 \r
55         /**\r
56          * Fetch Field Names\r
57          *\r
58          * Generates an array of column names\r
59          *\r
60          * @access      public\r
61          * @return      array\r
62          */\r
63         function list_fields()\r
64         {\r
65                 $field_names = array();\r
66                 for ($i = 0; $i < $this->num_fields(); $i++)\r
67                 {\r
68                         $field_names[] = sqlite_field_name($this->result_id, $i);\r
69                 }\r
70                 \r
71                 return $field_names;\r
72         }\r
73 \r
74         // --------------------------------------------------------------------\r
75 \r
76         /**\r
77          * Field data\r
78          *\r
79          * Generates an array of objects containing field meta-data\r
80          *\r
81          * @access      public\r
82          * @return      array\r
83          */\r
84         function field_data()\r
85         {\r
86                 $retval = array();\r
87                 for ($i = 0; $i < $this->num_fields(); $i++)\r
88                 {\r
89                         $F                              = new stdClass();\r
90                         $F->name                = sqlite_field_name($this->result_id, $i);\r
91                         $F->type                = 'varchar';\r
92                         $F->max_length  = 0;\r
93                         $F->primary_key = 0;\r
94                         $F->default             = '';\r
95 \r
96                         $retval[] = $F;\r
97                 }\r
98                 \r
99                 return $retval;\r
100         }\r
101 \r
102         // --------------------------------------------------------------------\r
103 \r
104         /**\r
105          * Free the result\r
106          *\r
107          * @return      null\r
108          */             \r
109         function free_result()\r
110         {\r
111                 // Not implemented in SQLite\r
112         }\r
113 \r
114         // --------------------------------------------------------------------\r
115 \r
116         /**\r
117          * Data Seek\r
118          *\r
119          * Moves the internal pointer to the desired offset.  We call\r
120          * this internally before fetching results to make sure the\r
121          * result set starts at zero\r
122          *\r
123          * @access      private\r
124          * @return      array\r
125          */\r
126         function _data_seek($n = 0)\r
127         {\r
128                 return sqlite_seek($this->result_id, $n);\r
129         }\r
130 \r
131         // --------------------------------------------------------------------\r
132 \r
133         /**\r
134          * Result - associative array\r
135          *\r
136          * Returns the result set as an array\r
137          *\r
138          * @access      private\r
139          * @return      array\r
140          */\r
141         function _fetch_assoc()\r
142         {\r
143                 return sqlite_fetch_array($this->result_id);\r
144         }\r
145         \r
146         // --------------------------------------------------------------------\r
147 \r
148         /**\r
149          * Result - object\r
150          *\r
151          * Returns the result set as an object\r
152          *\r
153          * @access      private\r
154          * @return      object\r
155          */\r
156         function _fetch_object()\r
157         {\r
158                 if (function_exists('sqlite_fetch_object'))\r
159                 {\r
160                         return sqlite_fetch_object($this->result_id);\r
161                 }\r
162                 else\r
163                 {\r
164                         $arr = sqlite_fetch_array($this->result_id, SQLITE_ASSOC);\r
165                         if (is_array($arr))\r
166                         {\r
167                                 $obj = (object) $arr;\r
168                                 return $obj;\r
169                         } else {\r
170                                 return NULL;\r
171                         } \r
172                 }\r
173         }\r
174 \r
175 }\r
176 \r
177 \r
178 /* End of file sqlite_result.php */\r
179 /* Location: ./system/database/drivers/sqlite/sqlite_result.php */