1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
########################
Generating Query Results
########################
There are several ways to generate query results:
result()
========
This function returns the query result as an array of **objects**, or
**an empty array** on failure. Typically you'll use this in a foreach
loop, like this::
$query = $this->db->query("YOUR QUERY"); foreach ($query->result() as $row) { Â Â Â echo $row->title; Â Â Â echo $row->name; Â Â Â echo $row->body; }
The above function is an alias of result_object().
If you run queries that might **not** produce a result, you are
encouraged to test the result first::
$query = $this->db->query("YOUR QUERY"); if ($query->num_rows() > 0) { Â Â Â foreach ($query->result() as $row) Â Â Â { Â Â Â Â Â Â echo $row->title; Â Â Â Â Â Â echo $row->name; Â Â Â Â Â Â echo $row->body; Â Â Â } }
You can also pass a string to result() which represents a class to
instantiate for each result object (note: this class must be loaded)
::
$query = $this->db->query("SELECT * FROM users;");
foreach ($query->result('User') as $user)
{
echo $user->name; // call attributes
echo $user->reverse_name(); // or methods defined on the 'User' class
}
result_array()
===============
This function returns the query result as a pure array, or an empty
array when no result is produced. Typically you'll use this in a foreach
loop, like this::
$query = $this->db->query("YOUR QUERY"); foreach ($query->result_array() as $row) { Â Â Â echo $row['title']; Â Â Â echo $row['name']; Â Â Â echo $row['body']; }
row()
=====
This function returns a single result row. If your query has more than
one row, it returns only the first row. The result is returned as an
**object**. Here's a usage example::
$query = $this->db->query("YOUR QUERY"); if ($query->num_rows() > 0) { Â Â Â $row = $query->row(); Â Â Â echo $row->title; Â Â Â echo $row->name; Â Â Â echo $row->body; }
If you want a specific row returned you can submit the row number as a
digit in the first parameter::
$row = $query->row(5);
You can also add a second String parameter, which is the name of a class
to instantiate the row with::
$query = $this->db->query("SELECT * FROM users LIMIT 1;"); $query->row(0, 'User') echo $row->name; // call attributes echo $row->reverse_name(); // or methods defined on the 'User' class
row_array()
============
Identical to the above row() function, except it returns an array.
Example::
$query = $this->db->query("YOUR QUERY"); if ($query->num_rows() > 0) { Â Â Â $row = $query->row_array(); Â Â Â echo $row['title']; Â Â Â echo $row['name']; Â Â Â echo $row['body']; }
If you want a specific row returned you can submit the row number as a
digit in the first parameter::
$row = $query->row_array(5);
In addition, you can walk forward/backwards/first/last through your
results using these variations:
**$row = $query->first_row()**
**$row = $query->last_row()**
**$row = $query->next_row()**
**$row = $query->previous_row()**
By default they return an object unless you put the word "array" in the
parameter:
**$row = $query->first_row('array')**
**$row = $query->last_row('array')**
**$row = $query->next_row('array')**
**$row = $query->previous_row('array')**
***********************
Result Helper Functions
***********************
$query->num_rows()
===================
The number of rows returned by the query. Note: In this example, $query
is the variable that the query result object is assigned to::
$query = $this->db->query('SELECT * FROM my_table'); echo $query->num_rows();
$query->num_fields()
=====================
The number of FIELDS (columns) returned by the query. Make sure to call
the function using your query result object::
$query = $this->db->query('SELECT * FROM my_table'); echo $query->num_fields();
$query->free_result()
======================
It frees the memory associated with the result and deletes the result
resource ID. Normally PHP frees its memory automatically at the end of
script execution. However, if you are running a lot of queries in a
particular script you might want to free the result after each query
result has been generated in order to cut down on memory consumptions.
Example::
$query = $this->db->query('SELECT title FROM my_table'); foreach ($query->result() as $row) { Â Â Â echo $row->title; } $query->free_result(); // The $query result object will no longer be available $query2 = $this->db->query('SELECT name FROM some_table'); $row = $query2->row(); echo $row->name; $query2->free_result(); // The $query2 result object will no longer be available
|