source: sourcecode/system/database/drivers/mysqli/mysqli_result.php @ 1

Last change on this file since 1 was 1, checked in by dungnv, 11 years ago
File size: 3.6 KB
Line 
1<?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
2/**
3 * CodeIgniter
4 *
5 * An open source application development framework for PHP 5.1.6 or newer
6 *
7 * @package             CodeIgniter
8 * @author              ExpressionEngine Dev Team
9 * @copyright   Copyright (c) 2008 - 2011, EllisLab, Inc.
10 * @license             http://codeigniter.com/user_guide/license.html
11 * @link                http://codeigniter.com
12 * @since               Version 1.0
13 * @filesource
14 */
15
16// ------------------------------------------------------------------------
17
18/**
19 * MySQLi Result Class
20 *
21 * This class extends the parent result class: CI_DB_result
22 *
23 * @category    Database
24 * @author              ExpressionEngine Dev Team
25 * @link                http://codeigniter.com/user_guide/database/
26 */
27class CI_DB_mysqli_result extends CI_DB_result {
28
29        /**
30         * Number of rows in the result set
31         *
32         * @access      public
33         * @return      integer
34         */
35        function num_rows()
36        {
37                return @mysqli_num_rows($this->result_id);
38        }
39
40        // --------------------------------------------------------------------
41
42        /**
43         * Number of fields in the result set
44         *
45         * @access      public
46         * @return      integer
47         */
48        function num_fields()
49        {
50                return @mysqli_num_fields($this->result_id);
51        }
52
53        // --------------------------------------------------------------------
54
55        /**
56         * Fetch Field Names
57         *
58         * Generates an array of column names
59         *
60         * @access      public
61         * @return      array
62         */
63        function list_fields()
64        {
65                $field_names = array();
66                while ($field = mysqli_fetch_field($this->result_id))
67                {
68                        $field_names[] = $field->name;
69                }
70
71                return $field_names;
72        }
73
74        // --------------------------------------------------------------------
75
76        /**
77         * Field data
78         *
79         * Generates an array of objects containing field meta-data
80         *
81         * @access      public
82         * @return      array
83         */
84        function field_data()
85        {
86                $retval = array();
87                while ($field = mysqli_fetch_object($this->result_id))
88                {
89                        preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches);
90
91                        $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL;
92                        $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL;
93
94                        $F                              = new stdClass();
95                        $F->name                = $field->Field;
96                        $F->type                = $type;
97                        $F->default             = $field->Default;
98                        $F->max_length  = $length;
99                        $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 );
100
101                        $retval[] = $F;
102                }
103
104                return $retval;
105        }
106       
107        // --------------------------------------------------------------------
108
109        /**
110         * Free the result
111         *
112         * @return      null
113         */
114        function free_result()
115        {
116                if (is_object($this->result_id))
117                {
118                        mysqli_free_result($this->result_id);
119                        $this->result_id = FALSE;
120                }
121        }
122
123        // --------------------------------------------------------------------
124
125        /**
126         * Data Seek
127         *
128         * Moves the internal pointer to the desired offset.  We call
129         * this internally before fetching results to make sure the
130         * result set starts at zero
131         *
132         * @access      private
133         * @return      array
134         */
135        function _data_seek($n = 0)
136        {
137                return mysqli_data_seek($this->result_id, $n);
138        }
139
140        // --------------------------------------------------------------------
141
142        /**
143         * Result - associative array
144         *
145         * Returns the result set as an array
146         *
147         * @access      private
148         * @return      array
149         */
150        function _fetch_assoc()
151        {
152                return mysqli_fetch_assoc($this->result_id);
153        }
154
155        // --------------------------------------------------------------------
156
157        /**
158         * Result - object
159         *
160         * Returns the result set as an object
161         *
162         * @access      private
163         * @return      object
164         */
165        function _fetch_object()
166        {
167                return mysqli_fetch_object($this->result_id);
168        }
169
170}
171
172
173/* End of file mysqli_result.php */
174/* Location: ./system/database/drivers/mysqli/mysqli_result.php */
Note: See TracBrowser for help on using the repository browser.