Download Bases de datos PHP
Document related concepts
Transcript
Bases de datos PHP “Una base de datos es uno de los pilares del desarrollo Web del lado del servidor. Están en todas partes, desde la base de datos que le permite buscar en la Web con Yahoo!, hasta la que le permite adquirir libros en Amazon. Es posible que utilice muchas bases de datos cuando desarrolle sitios Web y aplicaciones Web. Como tal, el lenguaje de desarrollo que utilice deberá ayudarlo en estas tareas. Como veremos, PHP dispone de todo lo necesario.” 1 Métodos de consulta de bases de datos PHP. “El método más común que utiliza PHP para acceder a bases de datos, es por forma directa, pero también existe el ODBC (conectividad abierta para bases de datos)”6. Con el método directo, se utiliza una extensión PHP escrita para cada base de datos bien sea MySQL o Oracle. Si la base de datos carece de extensión, entonces utilizamos ODBC. ODBC “ODBC es una forma estándar de conectar una base de datos con una aplicación. ODBC suele verse en la plataforma Windows, pero también se encuentra disponible para sistemas Unix.”6 Este permite definir una conexión con un origen de datos, de la siguiente manera: PHPODBCBase de datos. 1 STOPFORD ANDREW, Programacion PHP para Windows, Prentice Hall, pag 125 Método directo. Este permite a PHP conectarse a una base de datos directamente por medio de un API, por lo cual es mucho mas rápido que el ODBC, ya que no hay ninguna etapa intermedia. Trabajo en Bases de datos. Existe un lenguaje estándar para trabajar con los datos de cada base de datos llamado “SQL, (lenguaje normalizado de consulta)”2. Este lenguaje permite editar cualquier aspecto de una base datos. PHP usa este lenguaje para trabajar con bases de datos. Como instalar una base de datos. Para comprender mejor este tema, utilizamos una base de datos Microsoft Access, para una situación real en donde la base de datos sea consultada por gran numero de clientes, Access, no es una opción viable para ser usado como base de datos, en este caso es mejor utilizar algún producto como Microsoft SQL server u oracle). Se toma una tabla sencilla llamada names en la base de datos. Sus campos son mostrados a continuación. Nombre del Campo 2 Tipo de Campo Tamaño del campo ENCICLOPEDIA ENCARTA 2004, SQL Ejemplo(tabla) tomado de: STOPFORD ANDREW, Programacion PHP para Windows, pag 128 ID name AutoNumber Text 50 Como establecer una conexión En el caso de que su versión de PHP sea binaria, ODBC será compilado directamente en PHP. Para empezar a usar ODBC, es necesario conectarse a la base de datos. <?php //conectarse $stringdeconeccion = ODBC_connect(“phpwinaccess”, “, ” “); //desconectarse odbc_close($stringdeconeccion); ?> Para consultar la base de datos, es necesario el siguiente código. <?php //conectarse $stringdeconeccion = ODBC_connect(“phpwinaccess”, “, ” “); //consultar SQL $interrogante = “SELECT name FROM names”; //ejecutar consulta $resultado = odbc_do($stringdeconeccion, $interrogante); //desconectarse odbc_close($stringdeconeccion); ?> “Este script se construye sobre la base de los scripts anteriores, incorporando la opción de consultar la base de datos. Para hacerlo, primero deberá establecer la consulta SQL necesaria para consultar la base de datos. Esta se almacena en la variable ($interrogante). Esto permite reutilizar la misma consulta SQL en todas las consultas posteriores. También sirve para la comprobación de errores. Si desarrolla un error en la cadena de consulta SQL, podrá imprimir la variable en la pantalla para ver donde se equivoco.”3 $interrogante = “SELECT name FROM names”; Luego, este pasa la consulta a la base de datos, y almacena su resultado en $resultado. $resultado = odbc_do($stringdeconeccion, $interrogante); Resultados de la Consulta. Para que PHP imprima los resultados de la búsqueda en pantalla, es necesario utilizar el siguiente script. <?php //coneccion con base de datos. $stringdeconeccion = ODBC_connect(“phpwinaccess”, “, ” “); //consultar SQL 3 STOPFORD ANDREW, Programacion PHP para Windows, pag 131 $interrogante = “SELECT name FROM names”; $resultado = odbc_do($stringdeconeccion, $interrogante); //resultados en tabla estándar ODBC_result_all($resultado, “BORDER=1”); //desconectarse odbc_close($stringdeconeccion); ?> La función ODBC_result_all($resultado, “BORDER=1”);, muestra los resultados de la búsqueda en una tabla HTML. Dar formato a los resultados En la función ODBC_result, no se puede controlar el modo en que van a ser presentados los datos al usuario, para poder lograr otra presentación, es necesario utilizar otras funciones ODBC de PHP: <html> <head></head> <body> <table width=”75%” border=”1”> <tr bgcolor=”#FF0000”> <td><b>Nombres</b></td> </tr> <?php //coneccion con base de datos. $stringdeconeccion = ODBC_connect(“phpwinaccess”, “, ” “); //consultar SQL $interrogante = “SELECT name FROM names”; //ejecucion consulta $resultado = odbc_do($stringdeconeccion, $interrogante); //consulta base de datos while(ODBC_fetch_row($resultado)); { $nombre = odbc_result($resultado, 1); //formato print(“<tr><td>$nombre</td></tr>); } //desconectarse odbc_close($stringdeconeccion); ?> </table> </body> </html> Podemos observar claramente como este script PHP esta dentro de un código HTML, así se puede mejorar la visualización de los datos. Como primero observemos la función ODBC_fetch_row. Esta cumple el trabajo de recorrer todas las filas de la base de datos. Luego “accede al valor de las columnas de cada registro. Las cuales vienen identificadas por un número, empezando por el 0. La tabla tiene las columnas ID y Nombre, por lo que ID seria la columna 0, mientras que Nombre seria la columna 1. El valor del registro se almacena en la variable $nombre. Al tener los valores necesarios, se puede utilizar HTML para dar formato a los resultados.” 4 Consultar base de datos directamente por PHP. PHP soporta una gran cantidad de bases de datos como lo son “MySQL, Microsoft SQL server, oracle mSQL, dBASE, informix, Ingres, Internase y postgres”5 De hecho, PHP soporta tantas, que para examinarlas todas, se requeriria alejarse mucho del tema, por lo cual, las bases de datos mas importantes son explicadas en el anexo A del documento. 4 5 STOPFORD ANDREW, Programacion PHP para Windows, Prentice Hall, pag 132 STOPFORD ANDREW, Programacion PHP para Windows, Prentice Hall, pag 134