Adodb használata, tutorial
Létrehozva: 2007. június 25. 11:35
Bemutatok néhány egyszerű példát a használatához azoknak akik még csak most ismerkednek vele.Szükséges hozzá PHP alapjaival tisztában lenni.

1. Kapcsolódás adatbázishoz DSN (adatforrás) segítségével
<?php
// Kiszolgáló
$db_host = 'localhost';
// Kiszolgálónk tipusa pl: mysql, postgres, oracle
$db_type = 'mysql';
// Adatbázisunk neve
$db_name = 'test';
// Felhasználói név
$db_user = 'root';
// Jelszó
$db_pass = '';
// Adodb bővítmények
$db_ext = 'pear:cache:extend';
// Összeálítjuk a DSN-t
$dsn = $db_type . '://' . $db_user . ':' . $db_pass
. '@' . $db_host . '/' . $db_name . '#' . $db_ext;
// Létrehozzuk a kapcsolatot
$db = ADONewConnection( $dsn );
// Ellenőrizük
if ( ! $db->_connectionID ) {
die( 'Sikertelen kapcsolódás az adatbázishoz.' );
}
// Ha szükséges akkor hibakereső módba is használhatjuk ami megkönnyíti
// a fejlesztést, ekkor kiír nekünk minden lefuttatott kérést és hibát.
// $db- >debug = true;
?>
Az előbbi sorokat lementhetjük a projektmappánkon belül a connect.php állományba.
Ugyanide csomagoljuk ki letöltött adodbXXX.zip-et is.
2. Gyakorlati példa
A következő táblával fogunk dolgozni ami egy egyszerű üzenőfalt valósít meg:
CREATE TABLE forum (
Id INT( 11 ) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
Name VARCHAR( 100 ) NULL ,
Email VARCHAR( 100 ) NULL ,
Message TEXT NULL ,
CreationDate TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
)
Lássunk egy-két példát (index.php)
<?php
// behúzzuk a szükséges állományokat
// egy példa kedvéért
include 'smarty/Smarty.class.php';
// kicsomagolt adodb
include 'adodb/adodb.inc.php';
// az előzőekben elkészített kapcsolat konfigurációnk
include 'connect.php';
// Beillesztés a "forum" táblánkba
$sql = "INSERT INTO forum ( Name, Email, Message )
VALUES ( 'Sod', 'noreplay@noreplay.hu', 'Az én üzenetem.' )";
// futtatjuk utasításunkat
$db->Execute( $sql );
// Klasszikus lekérdezés
$rs = $db->Execute( 'SELECT Name, Message FROM forum ORDER BY Id DESC' );
// A sorok számával ellenőrizünk
if( $rs->_numOfRows ) {
// egy ciklussal felsoroljuk az eredményt
while ( $record = $rs->FetchRow() ) {
print $record['Name'] . '<br />' . $record['Message'] . '<hr />';
}
}
// Egyből egy többdimenziós tömb ami smarty-val nagyon jól feldolgozhat
$rs = $db->Execute( 'SELECT Name, Message FROM forum ORDER BY Id DESC' );
if( $rs->_numOfRows ) {
$messages = $rs->GetArray();
// A foreach ciklust már a template-ben valósítjuk meg.
$smarty->assign( 'messages', $messages );
}
// Csak egy sorra vagyunk kíváncsiak
$row = $db->GetRow( 'SELECT Name, Message FROM forum WHERE Id = 1' );
// Ha csak egy konkrét mező értéke érdekel minket
$message = $db->GetOne( 'SELECT Message FROM forum WHERE Id = 1' );
?>
Felhívnám a figyelmet, hogy ezt a példa gyakorlatilag még nem egy működőképes üzenőfal. De remélem sokat segítettem az ismerkedésben, sok sikert hozzá.
Ha esetleg kérdésed lenne, nyugodtan keress meg elérhetőségeimen.

