Adodb használata, tutorial

Címkék: web, adodb, adatbázis, php
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.

 

 

kerékpár
28
veterán
19
web
11
ubuntu
7
php
5
triál
4
Weiss Manfréd
4
országúti
4
mysql
3
javascript
3
mootools
3
adodb
3
adatbázis
3
linux
3
Velvárt
3
apache
3
félverseny
2
CSODA
2
ffmpeg
2
Csepel
2