06.09.2014 Views

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

Bases de datos: Software libre - Universitat Oberta de Catalunya

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

© FUOC • 71Z799014MO 20 Desarrollo <strong>de</strong> aplicaciones en conexión con bases <strong>de</strong> <strong>datos</strong><br />

13 // Realizamos la consulta:<br />

14 $res =& $db->query(‘SELECT * FROM clients’);<br />

15<br />

16 // Comprobamos que la consulta se ha realizado correctamente<br />

17 if (DB::isError($res)) {<br />

18 die($res->getMessage());<br />

19 }<br />

20<br />

21 // Iteramos sobre los resultados<br />

22 while ($row =& $res->fetchRow()) {<br />

23 echo $row[0] . “\n”;<br />

24 }<br />

25<br />

26 // Liberamos la hoja <strong>de</strong> resultados<br />

27 $res->free()<br />

28<br />

29 // Desconectamos <strong>de</strong> la base <strong>de</strong> <strong>datos</strong><br />

30 $db->disconnect();<br />

31 ?><br />

La estructura <strong>de</strong>l código y hasta la sintaxis <strong>de</strong> las sentencias es similar a los<br />

ejemplos nativos vistos anteriormente, exceptuando las partes <strong>de</strong> las sentencias<br />

que hacían referencia al motor <strong>de</strong> base <strong>de</strong> <strong>datos</strong> en particular.<br />

A continuación, vamos a avanzar por el código ampliando la información sobre<br />

cada paso.<br />

La conexión se especifica mediante una sintaxis <strong>de</strong> tipo DSN (data source name).<br />

Los DSN admiten multitud <strong>de</strong> variantes, <strong>de</strong>pendiendo <strong>de</strong>l motor al que<br />

nos conectemos, pero en casi todos los casos, tienen la forma siguiente:<br />

motorphp://usuario:contraseña@servidor/base<strong>de</strong><strong>datos</strong>?opcion=valor<br />

• Conexión a MySQL<br />

mysql://usuario:password@servidor/base<strong>de</strong><strong>datos</strong><br />

• Conexión a MySQL a través <strong>de</strong> un socket UNIX:<br />

mysql://usuario:password@unix(/camino/al/socket)/base<strong>de</strong><strong>datos</strong><br />

• Conexión a PostgreSQL<br />

pgsql://usuario:password@servidor/base<strong>de</strong><strong>datos</strong><br />

• Conexión a PostgreSQL en un puerto específico:<br />

pgsql://usuario:password@tcp(servidor:1234)/base<strong>de</strong><strong>datos</strong><br />

En cualquier llamada a un método <strong>de</strong>l paquete DB, éste pue<strong>de</strong> <strong>de</strong>volver el<br />

objeto que le correspon<strong>de</strong> (una hoja <strong>de</strong> resultados, un objeto representando<br />

la conexión, etc.) o bien un objeto que represente el error que ha tenido la<br />

llamada. De ésta manera, para comprobar los errores que pue<strong>de</strong> originar cada<br />

sentencia o intento <strong>de</strong> conexión, bastará con comprobar el tipo <strong>de</strong>l objeto<br />

<strong>de</strong>vuelto:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!