Download Bases de datos PHP

Document related concepts

Open Database Connectivity wikipedia , lookup

Doctrine (PHP) wikipedia , lookup

MySQL wikipedia , lookup

Adaptive Server Anywhere wikipedia , lookup

Inyección SQL wikipedia , lookup

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: PHPODBCBase 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