PHP kézikönyv
Előző |  | Következő

# dbx_query

(PHP 4 >= 4.0.6, PHP 5)

dbx_query -- végrehajt egy lekérdezést és visszaadja a teljes végeredményt (ha van)

## Leírás

object dbx_query ( object link_identifier, string sql_statement [, long flags] )

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.

Példa 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.

Megjegyzendő, hogy a `DBX_RESULT_INDEX`-et mindig használja a függvény, függetlenül a flags paraméter értékétől. Emiatt valójában csak az alábbi kombinációk értelmesek:

- `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.

  Példa 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.

  Példa 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";`

> Megjegyzés: Használd mindig az adatbázis specifikus dokumentációt is!

Lásd még: dbx_connect()!

Előző | Tartalom | Következő
dbx_fetch_row | Fel | dbx_sort