Vous êtes sur la page 1sur 8

Conexin de PHP y MySQL: A continuacin se presenta la forma en que se puede conectar PHP con el gestor de bases de datos MySQL.

Una vez el servidor ha solicitado al intrprete de PHP la ejecucin de un determinado script, este se puede encontrar con sentencias que pretenden manipular los datos almacenados por un gestor de bases de datos. Como se haba mencionado con antelacin, uno de los gestores de bases de datos mas utilizados en entornos en los que se emplee PHP como lenguaje de programacin es MySQL. El alto grado de integracin del que se dispone con este gestor y el numeroso grupo de funciones disponibles, unido a las ventajas propias del gestor, hacen de esta pareja una potente plataforma de desarrollo. PHP dispone de un nmero de funciones nativas que sirven para efectuar cualquier tipo de consulta a MySQL. Todas ellas comienzan por MySQL. A continuacin se describe la forma genrica de realizar las operaciones bsicas de insercin, consulta, eliminacin y actualizacin sobre las tablas de MySQL. Conexin con el servidor Conexin con la base de datos Preparacin de la(s) consulta(s) SQL requerida(s) (insercin, consulta, eliminacin o actualizacin) Ejecucin de la(s) consulta(s) Procesamiento del resultado obtenido si es requerido Liberacin de recursos Cierre de la conexin

Para realizar estos pasos, disponemos de las funciones indicadas a continuacin: mysql_connect(host,usuario,password) Establece la conexin con el servidor. Recibe como parmetros el nombre del ordenador desde el que se hace la conexin (127.0.0.1 localhost por defecto), y, opcionalmente, el nombre del usuario y clave si la tiene. Devuelve un identificador de conexin. mysql_select_db(basededatos,conexin) Selecciona la base de datos sobre la que se va a trabajar. Se indica mediante una cadena de caracteres que es el nombre de dicha base de datos. El parmetro de conexin es opcional.

Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

mysql_query(consulta, conexin) Ejecuta la consulta SQL indicada como primer parmetro como primer parmetro sobre la base de datos seleccionada en la conexin del segundo parmetro. Como se dijo anteriormente, el segundo parmetro es opcional, y en caso de no ponerse, se ejecutara sobre la conexin activa. Devuelve un identificador de cursor en el que est almacenado el resultado de la ejecucin de dicha consulta. mysql_num_fields(cursor) Devuelve el nmero de atributos que figuran en el cursor que se le pasa como parmetro y en el que se almacena el resultado de la consulta. mysql_num_rows(cursor) Devuelve el nmero de filas que se han almacenado en el cursor que se le pasa como parmetro. mysql_fetch_row(cursor) Avanza a la siguiente posicin de la fila o tupla activa en el cursor. Devuelve un array que contiene en sus celdas cada uno de los valores de los atributos de la fila. mysql_result(cursor,numfila,numcolumna) Devuelve el valor del atributo cuyo nmero de columna se le pasa como tercer parmetro, en la fila indicada por el segundo parmetro. Si no se le indica el nmero de la columna, se le devuelve el primero de los atributos. Hay que tener en cuenta que el recorrido se puede desarrollar a travs de dos bucles con la sentencia for. mysql_fetch_array(cursor) Devuelve un array, cuyo manejo implica el conocimiento del nombre de los diferentes atributos que sern en la matriz asociativa las respectivas claves. mysql_free_result(cursor) Libera los recursos asociados con el cursor. mysql_close(conexion) Cierra la conexin establecida con mysql_connect().

Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

A continuacin se presenta un ejemplo utilizando una agenda telefnica sencilla. Base de datos: create database agenda; use agenda; create table amigos (cod int not null, nombre char(10), apellido char(8), tel char(10), primary key(cod)); insert into amigos(cod,nombre,apellido,tel) values (1,'esteban','franco','8751193'); insert into amigos(cod,nombre,apellido,tel) values (2,'edwin','moreno','8977322'); insert into amigos(cod,nombre,apellido,tel) values (3,'fabian','gaviria','8568945'); Formulario de inicio en html (guardar como inicio.html): <html> <head> <title>inicio</title> </head> <body> <p>que desea hacer?:</p> <p><a href="insertar.html">agregar un nuevo amigo.</a></p> <p><a href="listar.php">ver la lista de amigos.</a></p> <p><a href="borrar.php">borrar a un amigo.</a></p> </body> </html>

Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

Formulario insertar en html (guardar como insertar.html): <html> <body> <form action="insertar.php" method="post"> <table border=1> <tr><td>Codigo</td><td>Nombre</td><td>Apellido</td><td>Telefono</td> </tr> <tr> <td><input type="text" name="c" size=3></td> <td><input type="text" name="n" size=10></td> <td><input type="text" name="a" size=10></td> <td><input type="text" name="t" size=10></td> </tr> <tr> <td colspan="4"><center><input type="submit" value="Guardar"></center></td> </tr> </table> </form> </body> </html> Ejecucin de la insercin en PHP (guardar como insertar.php): <html> <body> <?php //tomo las variables enviadas desde el formulario html $c=$HTTP_POST_VARS['c']; $n=$HTTP_POST_VARS['n']; $a=$HTTP_POST_VARS['a']; $t=$HTTP_POST_VARS['t']; //establece la conexion con el servidor y la almacena en la variable conex $conex=mysql_connect("localhost","root","") or die ("no se pudo establecer la conexion"); //Selecciona la base de datos sobre la que se va a trabajar mysql_select_db("agenda",$conex); //preparo la consulta y la almaceno en forma de cadena en la varialbe m Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

$m="insert into amigos(cod,nombre,apellido,tel) "; $m.="values($c,'$n','$a','$t');"; //ejecuta la consulta almacenada en la variable m sobre la conexion activa en la variable //conex $resultado=mysql_query($m,$conex); //libera los recursos asociados a la consulta SQL mysql_free_resul($resultado); //cierra la conexion con la base de datos mysql_close($conex); ?> </body> </html> Imprimir la lista de amigos (guardar como listar.php): <html> <body> <?php //conexion y consulta, estos pasos son similares a los de insertar.php $conex=mysql_connect("localhost","root","") or die ("no se pudo establecer la conexion"); mysql_select_db("agenda",$conex); $m="select * from amigos;"; $resultado=mysql_query($m,$conex); //devuelve el nmero de filas de la matriz devuelta en la consulta $num_filas=mysql_num_rows($resultado); //devuelve el nmero de atributos de la consulta $num_campos=mysql_num_fields($resultado); Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

echo "<table border=1>"; echo "<tr><td>codigo</td><td>nombre</td><td>apellido</td><td>telefono</td></tr>"; //mientras la funcion mysql_fetch_row($resultado) retorne un valor positivo se ejecuta el //ciclo while($fila=mysql_fetch_row($resultado)) { echo "<tr>"; for($i=0;$i<$num_campos;$i++) { echo "<td>"; echo $fila[$i]; echo "</td>"; } echo "</tr>"; } echo "</table>"; //se liberan los recursos y se cierra la conexion mysql_free_resul($resultado); mysql_close($conex); ?> </body> </html> Formato para realizar el borrado de alguna tupla (guardar como borrar.php): <html> <body> <form action="borra.php" method="post"> <table border=1><tr><td>escriba el codigo</td> <td><input type="text" name="cod" size=5"><td><tr> <tr><td colspan="2"><input type="submit" value="borrar"></td></tr> </table> </form> <?php Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

//imprime resultado $conex=mysql_connect("localhost","root","") or die ("no se pudo establecer la conexion"); mysql_select_db("agenda",$conex); $m="select * from amigos;"; $resultado=mysql_query($m,$conex); $num_filas=mysql_num_rows($resultado); $num_campos=mysql_num_fields($resultado); echo "<table border=1>"; echo "<tr><td>codigo</td><td>nombre</td><td>apellido</td><td>telefono</td></tr>"; while($fila=mysql_fetch_row($resultado)) { echo "<tr>"; for($i=0;$i<$num_campos;$i++) { echo "<td>"; echo $fila[$i]; echo "</td>"; } echo "</tr>"; } echo "</table>"; mysql_free_resul($resultado); mysql_close($conex); ?> </body> </html> Cdigo para ejecutar el borrado (guardar como borra.php): <html> <body> <?php $cod=$HTTP_POST_VARS['cod']; //borrar registro $conex=mysql_connect("localhost","root","") or die ("no se pudo establecer la conexion"); mysql_select_db("agenda",$conex); $m="delete from amigos where $cod=amigos.cod;"; $resultado=mysql_query($m,$conex); mysql_free_resul($resultado); mysql_close($conex); Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

?> ?> </body> </html>

Programacin para sistemas en red II Profesor: Julio Csar Meza Ramrez

Vous aimerez peut-être aussi