Adatbázis lekérdezés eredmény – Eredetiben
Metódusok
result()
A $query→result() automatikusan elérhető az alapértelmezett értékekkel ha végrehajtasz egy adatbázis lekérdezést a $this→db→get() vagy $this→db→query() utasítással. Általában nem kell ezt a függvényt meghívni, kivéve ha meg szeretnéd változtatni az eredmény formátumát az alapértelmezettről.
Ha meg kell változtatnod az alapértelmezett formátumot, akkor egyszerűen futtasd a $query→result() metódust a következő paraméterekkel:
- Az első paraméterként az, hogy objektumokat (TRUE) vagy tömböket (FALSE) szeretnél használni a lekérdezési eredményben.
- A második paraméter az, hogy milyen tipusú objektumot/tömböt szeretnél használni: Tömböknél használhatsz MYSQL_ASSOC, MYSQL_NUM, vagy MYSQL_BOTH tipust. Objektumoknál megadhatod az osztály nevét és a könyvtárat. For objects, you can specify a class name, and the library will create the specified object, if it exists, otherwise it will create stdObjects.
$query = $this->db->query("SELECT `first_name`, `last_name`, `age` FROM `users`");
foreach ($query as $row) {
echo $row->first_name;
echo $row->last_name;
echo $row->age;
}
$query->result(FALSE);
foreach ($query as $row) {
echo $row['first_name'];
echo $row['last_name'];
echo $row['age'];
}
class CircleObject {
function area() {
return $this->radius * $this->radius * 3.14;
}
}
----
$query = $this->db->query("SELECT `radius` FROM `circles`");
$query->result(TRUE, 'CircleObject');
foreach ($query as $row) {
echo '<p>'.$row->area().'</p>';
}
Note that the preferred way to iterate through result sets is with the result object. This is not an array, but an object with an internal pointer to return the current row. Ha fizikai? tömb kell eredményként, akkor használd a következő metódust:
result_array()
$query→result_array() a lekérdezési eredményt tömbként adja vissza.
A paraméterek ugyanazok, min a result() esetén.
$query = $this->db->query("SELECT `first_name`, `last_name`, `age` FROM `users`");
foreach ($query->result_array(FALSE) as $row) {
echo $row['first_name'];
echo $row['last_name'];
echo $row['age'];
}
insert_id()
A $query→insert_id() visszaadja az INSERT utasítással beszúrt sor id-jét.
$query = $this->db->query("INSERT");
echo $query->insert_id();
// 15
count()
A $query→count() a lekérdezett adatok számát adja vissza.
$query = $this->db->query("SELECT * FROM table");
echo $query->count();
// 12
Manuálisan is mozgathatod az eredmény mutatót (result pointer) az eredmény objektumok között.
You can also manually move the result pointer around in the result object with the following chainable iterator methods.
next()
A következő elemre mozgatja az eredmény mutatót.
previous()
Az előző elemre mozgatja az eredmény mutatót.
rewind()
A legelső elemre mozgatja az eredmény mutatót.
valid()
Megadja, hogy létező (valid) az aktuális eredmény mutató.
current()
Visszaadja azt a sort, amire az aktuális eredmény mutató mutat.
$query = $this->db->select('title')->from($table)->get();
echo 'First:'.Kohana::debug($query->current()).'<br />';
$query->next();
echo 'Second:'.Kohana::debug($query->current()).'<br />';
$query->next();
echo 'Third:'.Kohana::debug($query->current());
echo '<h3>And we can reset it to the beginning:</h3>';
$query->rewind();
echo 'Rewound:'.Kohana::debug($query->current());
// Chain methods
echo $query->next()->next()->next()->current()->title;