dbx_query
(PHP 4 >= 4.0.6, PHP 5 <= 5.0.5, PECL dbx:1.1.0)
dbx_query — végrehajt egy lekérdezést és visszaadja a teljes végeredményt (ha van)
LeÃrás
Az sql_statement sikeres végrehajtásakor 1-gyel vagy egy objektummal tér vissza, ez utóbbival csak olyan esetben, ha SQL utasÃtásnak van végeredménye. Hiba esetén 0-t ad vissza.
Example#1 A visszatérési érték lekezelésére
<?php
$link = dbx_connect(DBX_ODBC, "", "db", "username", "password")
or die("Could not connect");
$result = dbx_query($link, 'SELECT id, szulo_id, leiras FROM tabla');
if ( is_object($result) ) {
// ... néhány további művelet, lásd még a lenti példákat ...
// elÅ‘ször, a mezÅ‘nevek és tÃpusaik kiÃrása
// azután, egy táblába kiÃrni a kapott végeredményt
}
else if ( $result == 1 ) {
echo("A lekérdezést sikeresen végrehajtva, nincs visszaadott eredményhalmaz");
}
else {
exit("Sikertelen lekérdezés");
}
dbx_close($link);
?>
A flags paraméteren keresztül szabályozható a visszaadandó információ mennyisége. Ez a következő állandók logikai vagy kapcsolata lehet:
- DBX_RESULT_INDEX
- Ez mindig felhasználásra kerül , és hatására a visszatérési érték része lesz egy két dimenziós tömb, amelynek az első indexe a sorindex, a második az oszlopindex, azaz például a data[2][3]-ban a 2 jelöli a sort, a 3 az oszlopot. Az indexelés 0-tól kezdődik. Ha a DBX_RESULT_ASSOC is meg van adva, akkor a minden esetben a DBX_RESULT_INFO-nak megfelelő értékeket is szolgáltatja a függvény.
- DBX_RESULT_INFO
- Az oszlopokról ad információt: a mezÅ‘k számáról, neveikrÅ‘l és tÃpusaikról.
- DBX_RESULT_ASSOC
- Ennek hatására az oszlopértékeket az oszlopnevekkel is lehet indexelni, azaz a visszaadott eredményhalmaz asszociatÃv tömbként is használható. Ezek az asszociatÃv indexek valójában referenciák a numerikus indexelésű értékekre, Ãgy a data[0][0]-t módosÃtva a data[0]['az_elsÅ‘_oszlop_mezÅ‘_neve'] is megváltozik.
- DBX_RESULT_INDEX
- DBX_RESULT_INDEX | DBX_RESULT_INFO
- DBX_RESULT_INDEX | DBX_RESULT_INFO | DBX_RESULT_ASSOC - alapértelmezés, ha nincs megadva a flags .
A visszaadott objektumnak négy vagy öt tagváltozója van a flags -től függően:
- handle
-
Érvényes kapcsolatazonosÃtó az adatbázishoz, és Ãgy szükség esetén az adott modulra jellemzÅ‘ függvények hÃvásához használható:
$result = dbx_query ($link, "SELECT id FROM tabla"); $length = mysql_field_len($result->handle, 0);
- cols and rows
-
A cols és rows tagváltozók tárolják az eredményhalmaz méreteit: az oszlopok/mezők és a sorok/rekordok számát.
$result = dbx_query ($link, "SELECT id FROM tabla");
echo "Az eredmény mérete: " . $result->rows . " x " . $result->cols . "<br/>\n"; - info (optional)
-
Az info tagváltozó csak akkor érhető el, ha a
DBX_RESULT_INFO és/vagy
DBX_RESULT_ASSOC szerepel a
flags
paraméterben. Ez olyan kétdimenzós tömb,
amelynek két nevesÃtett sora van (name és
type) a mezőinformációk eléréséhez.
Example#2 minden mezÅ‘ nevének és tÃpusának kilistázása
$result = dbx_query ($link, 'SELECT id FROM tabla',
DBX_RESULT_INDEX | DBX_RESULT_INFO);
for ($i = 0; $i < $result->cols; $i++ ) {
echo $result->info['name'][$i] . "\n";
echo $result->info['type'][$i] . "\n";
} - data
-
A data tagváltozó tartalmazza a tényleges
végeredményt, az eredményhalmazt, ha van ilyen. Ha a
DBX_RESULT_ASSOC is része a
flags
-nek, akkor az adatok
$result->data[2]["mező_neve"] alakban is elérhetők
lesznek, asszociatÃv tömbként kezelve a data-t.
Example#3 a data tagváltozó kiÃratása HTML táblaként
$result = dbx_query ($link, 'SELECT id, szulo_id, leiras FROM tabla');
echo "<table>\n";
foreach ( $result->data as $sor ) {
echo "<tr>\n";
foreach ( $sor as $oszlop ) {
echo "<td>$oszlop</td>";
}
echo "</tr>\n";
}
echo "</table>\n";
Note: Használd mindig az adatbázis specifikus dokumentációt is!
Lásd még: dbx_connect()!