Está en la página 1de 9

Acceso a bases de datos MySQL desde PHP El sistema de acceso y manipulacin de bases de datos desde PHP es similar al de otros

lenguajes de script: establece la conexin con la base de datos, ejecuta las sentencias de consulta o modificacin y finalmente cierra la conexin. PHP soporta compatibilidad con accesos a mltiples sistemas de bases de datos, sin embargo, el modo de programacin sobre cada tipo de base de datos, no presenta, como en otros casos, la misma nomenclatura. PHP utiliza funciones de nombre genrico, pero precedidas normalmente por el nombre del sistema de base de datos, de modo que las funciones que ofrece el lenguaje para el acceso a cada tipo de base de datos son diferentes. Establecimiento de conexin con bases de datos MySQL Para establecer la conexin con una base de datos MySQL desde PHP, se utiliza la funcin: mysql_connect("NombreHost","Usuario","Contrasea") cuyos parmetros son opcionales, e indican el nombre del servidor -o IP del mismo(NombreHost) donde se encuentra la base de datos, el Usuario de acceso a la base de datos, y la Contrasea de acceso. En caso de xito la funcin devuelve un identificador del enlace con el sistema de bases de datos. Una vez establecida la conexin, hay que indicar al sistema, la base de datos con la que se desea trabajar, usando la funcin: mysql_select_db("NombreBaseDatos") Y finalmente, para cerrar la conexin utilizamos: mysql_close($conexion) donde debemos pasarle como parmetro el enlace con la conexin inicialmente establecida. Ejemplo:

<?php #Conectamos con MySQL $conexion mysql_connect("NombreHost","Usuario","Contrasea") or die ("Fallo en el establecimiento de la conexin"); #Seleccionamos la base de datos a utilizar mysql_select_db("NombreBaseDatos") or die("Error en la seleccin de la base de datos");
1

# ################################### # # Aqu insertaramos las consultas sobre la base de datos # # ################################### # #Cerramos la conexin con la base de datos mysql_close($conexion); ?>
Consultas sobre bases de datos MySQL Para efectuar consultas sobre una base de datos MySQL, se utiliza en PHP la funcin: mysql_query($sql, $conexion) que toma como parmetros, una cadena con la consulta SQL a ejecutar (SELECT, INSERT, DELETE, etc.), y el enlace con la base de datos (opcional). Devuelve un identificador del resultado en caso de xito o FALSE en caso de error en la consulta. Solo con la ejecucin de la consulta sobre la base de datos, no podemos presentar el resultado de la misma. Para poder mostrar informacin resultante de una consulta deberemos hacer uso de funciones complementarias. Una de las posibles es: mysql_fetch_array($id_resultado) que devuelve un array con el resultado de la sentencia extrada identificada por el parmetro facilitado. Ejemplo: <?php #Conectamos con MySQL $conexion = mysql_connect("NombreHost","Usuario","Contrasea") or die ("Fallo en el establecimiento de la conexin"); #Seleccionamos la base de datos a utilizar mysql_select_db("NombreBaseDatos") or die("Error en la seleccin de la base de datos"); #Efectuamos la consulta SQL $result = mysql_query ("select * from personal" ) or die("Error en la consulta SQL"); #Mostramos los resultados obtenidos while( $row = mysql_fetch_array ( $result )) { echo $row [ "id" ]; echo $row [ "nombre" ]; 2

} ?> Forma sencilla de introducir nuevos elementos en una tabla de base de datos. Realizamos un Insert con PHP. Por Rubn Alvarez Una vez creada la tabla clientes en nuestra base de datos ejemplo, el paso siguiente sea llenarla con registros. Para ello vamos a ver este artculo, en el que se reciben datos desde un formulario y luego se insertan con PHP en la base de datos, en la tabla adecuada. Los datos del registro pueden ser recogidos, por ejemplo, a partir de un formulario. Aqu os proponemos un simple documento HTML que recoge los datos y los enva a una pgina PHP que se encarga de procesarlos: <HTML> <HEAD> <TITLE>Insertar.html</TITLE> </HEAD> <BODY> <div align="center"> <h1>Insertar un registro</h1> <br> <FORM METHOD="POST" ACTION="insertar.php"> Nombre<br> <INPUT TYPE="TEXT" NAME="nombre"><br> Telfono<br> <INPUT TYPE="TEXT" NAME="telefono"><br> <INPUT TYPE="SUBMIT" value="Insertar"> </FORM> </div> </BODY> </HTML> Llegados a la pgina destino del formulario (insertar.php), lo primero que habr que hacer es establecer un vnculo entre el programa y la base de datos. Esta conexin se lleva a cabo con la funcin mysql_connect. A continuacin, deberemos generar una orden de insercin del registro en lenguaje SQL. Esta orden ser ejecutada por medio de la funcin mysql_db_query. En esta funcin especificaremos primeramente la base de datos sobre la que queremos actuar y a continuacin introduciremos la sentencia SQL: <HTML> <HEAD> <TITLE>Insertar.php</TITLE> </HEAD> <BODY> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); 3

//seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); //Ejecucion de la sentencia SQL mysql_query("insert into clientes (nombre,telefono) values ('$nombre','$telefono')"); ?> <h1><div align="center">Registro Insertado</div></h1> <div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div> </BODY> </HTML> Ejecutar ejemplo Los parametros user y password son definidos por el creador de la base. Es conveniente en un principio, al crear nuestras bases, trabajar sin ellos con lo cual dejaremos las cadenas correspondientes vacias: "". Adems de la propia insercin, el programa avisa de la introduccin del registro y ofrece un enlace hacia una pgina de lectura la cual ser comentada a continuacin. No entraremos en la descripcin de la orden SQL, para comprender ms acerca de cmo introducir registros, refererirse al tutorial de SQL.

Utilizamos el comando Select de SQL para crear una seleccin de nuestra tabla y mostrar todos los datos en pantalla por medio de un bucle. Con PHP. Por Rubn Alvarez Dentro de una base de datos, organizada por tablas, la seleccin de una tabla entera o de un cierto numero de registros resulta una operacin rutinaria. Aqu os mostramos una forma bastante clsica de mostrar en pantalla a partir de un bucle los registros seleccionados por una sentencia SQL: <HTML> <HEAD> <TITLE>lectura.php</TITLE> </HEAD> <BODY> <h1><div align="center">Lectura de la tabla</div></h1> <br> <br> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); //seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); //Ejecutamos la sentencia SQL 4

$result=mysql_query("select * from clientes"); ?> <table align="center"> <tr> <th>Nombre</th> <th>Telfono</th> </tr> <? //Mostramos los registros while ($row=mysql_fetch_array($result)) { echo '<tr><td>'.$row["nombre"].'</td>'; echo '<td>'.$row["telefono"].'</td></tr>'; } mysql_free_result($result) ?> </table> <div align="center"> <a href="insertar.html">Aadir un nuevo registro</a><br> <a href="actualizar1.php">Actualizar un registro existente</a><br> <a href="borrar1.php">Borrar un registro</a><br> </div> </BODY> </HTML> Ejecutar script Los pasos a realizar son, en un principio, los vistos para la insercin de un registro: Conexin a la base y ejecucin de la sentencia. Esta vez, la informacin de dicha ejecucin ser almacenada en una variable ($result). El siguiente paso ser plasmar en pantalla la informacin recogida en $result. Esto lo haremos mediante la funcin mysql_fetch_array que devuelve una variable array con los contenidos de un registro a la vez que se posiciona sobre el siguiente. El bucle while nos permite leer e imprimir secuencialmente cada uno de los registros. La funcin mysql_free_result se encarga de liberar la memoria utilizada para llevar a cabo la consulta. Aunque no es necesaria su utilizacin, resulta altamente aconsejable. Explicamos cmo modificar o actualizar un registro existente en una tabla de una base de datos, con PHP. Es decir, hacer un update para un registro de una tabla, desde PHP. Por Rubn Alvarez Para mostrar cmo se actualiza un registro presente en nuestra base de datos, vamos a hacerlo a partir de un caso un poco ms complejo para que empecemos a familiarizarnos con estas operaciones. Realizaremos un par de scripts que permitan cambiar el numero de telfono de las distintas personas presentes en nuestra base. El nombre de estas personas, as como el nuevo numero de telfono, sern recogidos por medio de un formulario. 5

El archivo del formulario va a ser esta vez un script PHP en el que efectuaremos una llamada a nuestra base de datos para construir un men desplegable donde aparezcan todos los nombres. La cosa quedara as: <HTML> <HEAD> <TITLE>Actualizar1.php</TITLE> </HEAD> <BODY> <div align="center"> <h1>Actualizar un registro</h1> <br> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); //seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); echo '<FORM METHOD="POST" ACTION="actualizar2.php">Nombre<br>'; //Creamos la sentencia SQL y la ejecutamos $sSQL="Select nombre From clientes Order By nombre"; $result=mysql_query($sSQL); echo '<select name="nombre">'; //Generamos el menu desplegable while ($row=mysql_fetch_array($result)) {echo '<option>'.$row["nombre"];} ?> </select> <br> Telfono<br> <INPUT TYPE="TEXT" NAME="telefono"><br> <INPUT TYPE="SUBMIT" value="Actualizar"> </FORM> </div> </BODY> </HTML> La manera de operar para construir el men desplegable es la misma que para visualizar la tabla. De nuevo empleamos un bucle while en combinacin con la funcin mysql_fetch_array lo que nos permite mostrar cada una de las opciones. El script de actualizacin ser muy parecido al de insercin:

Nota: Para quien desee una referencia completa sobre cmo se hacen las sentencias UPDATE en el lenguaje SQL, recomendamos leer el artculo Actualizacin de registros con UPDATE en SQL. <HTML> <HEAD> <TITLE>Actualizar2.php</TITLE> </HEAD> <BODY> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); //seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); //Creamos la sentencia SQL y la ejecutamos $sSQL="Update Clientes Set telefono='$telefono' Where nombre='$nombre'"; mysql_query($sSQL); ?> <h1><div align="center">Registro Actualizado</div></h1> <div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div> </BODY> </HTML> Como habis podido comprobar, la operacin UPDATE no tiene demasiada complejidad. Sin embargo, para afianzar estos conocimientos recomendamos ver el vdeo sobre la actualizacin de registros en MySQL con PHP. Aprendemos a eliminar registros de una tabla de base de datos, con un ejemplo prctico en PHP. Por Rubn Alvarez Otra de las operaciones elementales que se pueden realizar sobre una base de datos es borrar un registro. Para hacerlo, SQL nos propone sentencias del tipo Delete. Vemoslo con un ejemplo aplicado a nuestra agenda. Cabe sealar que primero debemos seleccionar el registro que se desea borrar y luego realizar el borrado propiamente dicho. Para ello crearemos un men desplegable dinmico, donde se podr seleccionar el elemento que se desea borrar. Luego se pasar a una pgina PHP una referencia al elemento seleccionado, para borrarlo de la base de datos. <HTML> <HEAD> <TITLE>Borrar1.php</TITLE> </HEAD> <BODY> <div align="center"> <h1>Borrar un registro</h1> 7

<br> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); //seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); echo '<FORM METHOD="POST" ACTION="borrar2.php">Nombre<br>'; //Creamos la sentencia SQL y la ejecutamos $sSQL="Select nombre From clientes Order By nombre"; $result=mysql_query($sSQL); echo '<select name="nombre">'; //Mostramos los registros en forma de men desplegable while ($row=mysql_fetch_array($result)) {echo '<option>'.$row["nombre"];} mysql_free_result($result) ?> </select> <br> <INPUT TYPE="SUBMIT" value="Borrar"> </FORM> </div> </BODY> </HTML> El siguiente paso es hacer efectiva la operacin a partir de la ejecucin de la sentencia SQL que construimos a partir de los datos del formulario: <HTML> <HEAD> <TITLE>Borrar2.php</TITLE> </HEAD> <BODY> <? //Conexion con la base mysql_connect("localhost","tu_user","tu_password"); //seleccin de la base de datos con la que vamos a trabajar mysql_select_db("mi_base_datos"); //Creamos la sentencia SQL y la ejecutamos $sSQL="Delete From Clientes Where nombre='$nombre'";

mysql_query($sSQL); ?> <h1><div align="center">Registro Borrado</div></h1> <div align="center"><a href="lectura.php">Visualizar el contenido de la base</a></div> </BODY> </HTML> Nota: Varios comentarios preguntan por el archivo lectura.php que est enlazado en el cdigo del ejemplo. Tenemos que decir que ese archivo se coment en el artculo de la Seleccin y lectura de registros de la base de datos por medio de PHP. Con este captulo cerramos el bloque de accesos a bases de datos con PHP. Para mas informacin relacionada podis referiros al taller de PHP donde podris encontrar algn que otro artculo interesante al respecto. Asimismo, para los que prefieran el vdeo como material didctico, recomendamos ver el Videotutorial sobre las bases de datos con PHP.

También podría gustarte