Come connettersi al database con PHP

In questo tutorial vedremo come abilitare i moduli MS SQL Server nell' installazione del PHP, riuscendo così a creare pagine in PHP che si connettano ed interagiscano con il server di casa Microsoft.

Cosa ci serve

Dobbiamo abilitare i moduli sybase o mssql nel nostro PHP. Alcune distribuzioni BSD permettono all' utente di scegliere quali moduli installare, mentre in altri casi è l' utente che deve farlo manualmente; se ci troviamo nel secondo caso, non disperiamoci, è piuttosto semplice: innanzitutto ci serve la libreria freetds, che rende possibile l' accesso ai databases Sybase e SQL Server.Per installarla, tutto come di consueto: avviare gli scripts configure, make ed infine make install.

Next you need to build your PHP installation so that it knows about freetds. That's as simple as adding --with-mssql to the configure switches in most places. Freetds installs by default in /usr/local, so you'll probably need to modify the switch slightly to read --with-mssql=/usr/local

A questo punto copiamo i nostri binari ed attiviamoli nel php.ini. Da tener presente che tal file contiene già l' opzione di attivazione mssql, basterà togliervi la definizione commento. Riavviamo il webserver. A questo punto, per accertarci di aver svolto tutto correttamente, lanciamo il comando php_info(), che ci mostrerà la lista di tutti i moduli installati. Deve esserci il modulo mssql.

Pacchetti opzionali:

Molto utile, ma non indispensabile, è il pacchetto PEAR DB, consigliato ai programmatori che aspirano ad una cross-platform. La si può installare in una cartella del server a piacimento, accertandosi che sia inclusa nel PHP Include path.

A cosa serve il PEAR DB? Permette l' utilizzo di differenti motori database senza bisogno di cambiare il codice in PHP. Come prima cosa, nel caso si stia lavorando su sistema UNIX o su sistema Windows con attivo il modulo Sybase, bisogna specificargli la porta del database (di default per l' MS SQL è la 1433); nel caso in cui sia invece attivato il modulo mssql questo non è necessario.

Da tener presente, inoltre, l' indubbia utilità delle stored procedures, richiamabili tramite la sintassi:

"EXECUTE nome_procedura @variabile1 = 'value1', @variabile2 = 'value2'"

Vediamo a questo punto un piccolo esempio che integra il PEAR DB e l' SQL Server in PHP:

 

    <?php
    require_once("DB.php");

    $db =& DB::connect("mssql://user:password@host:1433/membership");
    if (DB::isError($db)) {
      die($db->getMessage());
    }
    $db->setFetchMode(DB_FETCHMODE_ASSOC);

    $res = db->query("EXECUTE member_list");
    if (DB::isError($res)) {
      die($res->getMessage());
    }

    echo "<table>n<tr>n<th>Name</th><th>Address</th><th>Email</th>" .
       "<th>Expiration</th>n</tr>n";
    while($row =& $res->fetchRow()) {
      printf("<tr><td>%s</td><td>%s</td><td>%s</td><td>%s</td></tr>n" ,
       $row["name"], $row["address"], $row["email"],
       $row["expiration"]);
    }
    echo "</table>n";

    ?>

 

Come possiamo vedere, non c'è nulla di complicato ne' nulla di così tanto diverso dal codice usato per connettersi ad databases MySQL. La connessione viene stabilita mediante il metodo DB::connect. Il metodo setFetchMode() lo abbiamo utilizzato invece per dire all' applicazione in quale formato restituirci i risultati del database. Il metodo query() invece ci permette l' esecuzione di una query e l' archiviazione dei suoi risultati in una variabile. Molto utile inoltre il metodo getMessage()che contiene la descrizione dei possibili errori che si possono verificare durante l' esecuzione.

Perchè servirsi dell' SQL Server

Molti puristi potrebbero malvedere l' unione di PHP ed SQL Server trattata in questo tutorial. Lasciando però alle spalle tutta l' etica e le convenzioni, l' utilità è indubbia, per diversi motivi. Innanzitutto, è indubbia la qualità del prodotto, l' SQL Server, potente ma nello stesso tempo user-friendly. Fattore importante è pure la sua onnipresenza nel mondo delle aziende, dove i servers proprietari (come l' SQL Server) fanno da padroni su quelli opensources. Per questi motivi è importante padroneggiare l' SQL Server, ancora meglio poi se lo si sa integrare nel PHP, linguaggio universalmente riconosciuto come tra i più rapidi del settore.



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Luca
Ti è piaciuto l'articolo?