GUIA DE TRABAJO PROGRAMA: INGENIERIA DE SISTEMAS CICLO DE FORMACIÓN: TECNICO ASIGNATURA: PROGRAMACION WEB BASICA DOCENTE – TUTOR: CARLOS MAURICIO DIAZ ROYERTH EJE DE APRENDIZAJE: CONEXIÓN DE PHP CON BASES DE DATOS - MYSQL COMPETENCIAS: El estudiante tiene la capacidad de diseñar Interfaces Gráficas de usuario, que interactúen con bases de datos ACTIVIDADES: Evaluación de Interpretación de Información trabajada autónomamente PREGUNTA PROBLEMATIZADORA: ¿Cuáles son los lineamientos que se deben tener en cuenta cuando se pretende diseñar Interfaces Gráficas de usuario, que interactúen con Sistemas de Bases de Datos? CONEXIÓN DE PHP CON BASES DE DATOS – MYSQL mysql_connect mysql_connect -- Abre una conexión a un servidor MySQL Descripción int mysql_connect ( [cadena hostname [, cadena usuario [, cadena password [, bool new_link [, int client_flags]]]]] ) Devuelve: Un identificador de enlace positivo si tiene exito, o falso si error. mysql_connect()establece una conexión a un servidor MySQL. Todos los argumentos son opcionales, y si no hay, se asumen los valores por defecto ('localhost', usuario propietario del proceso del servidor, password vacío). <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully'; mysql_close($link); ?> mysql_select_db Descripción int mysql_select_db ( cadena base_de_datos [, int identificador_de_enlace] ) Devuelve TRUE si todo se llevó a cabo correctamente, FALSE en caso de fallo. mysql_select_db() establece la base activa que estará asociada con el identificador de enlace específicado. Si no se específica un identificador de enlace, se asume el último enlace abierto. Toda llamada posterior a mysql_query() utilizará la base activada. Ejemplo 1. Ejemplo mysql_select_db <?php $link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); if (!$link) { die('Not connected : ' . mysql_error()); } // make foo the current db $db_selected = mysql_select_db('foo', $link); if (!$db_selected) { die ('Can\'t use foo : ' . mysql_error()); } ?> include() Tal como el nombre lo indica, la tarea de esta función es incluir un archivo dentro de otro. Un ejemplo muy común, es cuando creamos un script php con conexion a mysql, y para ahorrarnos include("conexion.php"); //INCLUIMOS EL ARCHIVO DE CONEXION A MYSQL. mysql_query mysql_query -- Envía una consulta de MySQL Descripción resource mysql_query ( string query [, resource identificador_de_enlace] ) mysql_query() envía una consulta (a la base de datos activa en el servidor asociado con el identificador_de_enlace dado). Lista de parámetros query Una consulta SQL La consulta no debe terminar con punto y coma. identificador_de_enlace Un identificador de enlace, como el regresado por mysql_connect(). Si identificador_de_enlace no es específicado, se asume el último enlace abierto. Si no se ha abierto enlace, la función intenta establecer uno tal y como si se hubiera llamado a mysql_connect() sin argumentos, y lo usará. El resultado de la consulta es puesto en la memoria intermedia (buffer). mysql_free_result mysql_free_result __ Libera la memoria del resultado Descripción int mysql_free_result ( int id_resultado) mysql_free_result() solo necesita ser llamada si te preocupa usar demasiado memoria durante la ejecución de tu script_ Toda la memoria del resultado especificado en el parametro del identificador de resultado sera automaticamente liberada insert into Como podemos INSÉRtar datos a través de una fila por vez: La sintaxis para insertar datos en una tabla mediante una fila por vez es la siguiente: INSERT INTO "nombre_tabla" ("columna1", "columna2", ...) VALUES ("valor1", "valor2", ...) EJEMPLO DE CONEXIÓN PHP Y MYSQL A continuación se presenta un ejemplo de cómo insertar datos a una base de datos utilizando php. La base de datos se llama basecurso y contiene una tabla llamada tablacurso que contiene los siguientes capos: cedula (entero)(12), nombre (varchar)(30), dirección(varchar)(30), teléfono(varchar)(30), email(varchar)(30), sexo (texto)(30) y estado(texto)(30) y tamaño máximo la cedula es la llave principal. Conexion.php <html> <head> <title>Ejemplo de PHP</title> </head> <body> <?php function Conectarse() { if (!($link=mysql_connect("localhost","root","cun2009"))) { echo "Error conectando a la base de datos."; exit(); } if (!mysql_select_db("basecurso",$link)) { echo "Error seleccionando la base de datos."; exit(); } return $link; } ?> </body> </html> Insertar.php <html> <head> <title>Insertar</title> </head> <body> <H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1> <FORM ACTION="agregar.php"> <TABLE> <TR> <TD>Cedula:</TD> <TD><INPUT TYPE="text" NAME="cedula" SIZE="20" MAXLENGTH="12"></TD> </TR> <TR> <TD>Nombre:</TD> <TD><INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Direccion:</TD> <TD><INPUT TYPE="text" NAME="direccion" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Telefono:</TD> <TD><INPUT TYPE="text" NAME="telefono" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Email:</TD> <TD><INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Sexo:</TD> <TD><INPUT TYPE="radio" NAME="sexo" value="Masculino">Masculino </TD> <TD><INPUT TYPE="radio" NAME="sexo" value="Femenino">Femenino</TD> </TR> <TR> <TD>Estado civil:</TD> <TD><SELECT NAME="estado"> <OPTION>Soltero <OPTION>Casado <OPTION>U. Libre <OPTION>Viudo <OPTION>Divorciado </TD> </TR> </TABLE> <INPUT TYPE="submit" NAME="accion" VALUE="Grabar"> </FORM> <hr> </body> </html> Agregar.php <?php include("conexion.php"); $link=Conectarse(); $Sql="insert into tablacurso(cedula,nombre,direccion,telefono,email,sexo,estado) values ('$cedula','$nombre','$direccion','$telefono','$email','$sexo','$estado')"; mysql_query($Sql,$link); echo "Registro gurdado con exito"; ?> Nota: Este ejercicio también se puede realizar utilizando un solo archivo php <html> <head> <title>Insertar</title> </head> <body> <H1>Ejemplo de uso de bases de datos con PHP y MySQL</H1> <FORM ACTION="" METHOD="POST"> <TABLE> <TR> <TD>Cedula:</TD> <TD><INPUT TYPE="text" NAME="cedula" SIZE="20" MAXLENGTH="12"></TD> </TR> <TR> <TD>Nombre:</TD> <TD><INPUT TYPE="text" NAME="nombre" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Direccion:</TD> <TD><INPUT TYPE="text" NAME="direccion" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Telefono:</TD> <TD><INPUT TYPE="text" NAME="telefono" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Email:</TD> <TD><INPUT TYPE="text" NAME="email" SIZE="20" MAXLENGTH="30"></TD> </TR> <TR> <TD>Sexo:</TD> <TD><INPUT TYPE="radio" NAME="sexo" value="Masculino">Masculino </TD> <TD><INPUT TYPE="radio" NAME="sexo" value="Femenino">Femenino</TD> </TR> <TR> <TD>Estado civil:</TD> <TD><SELECT NAME="estado"> <OPTION>Soltero <OPTION>Casado <OPTION>U. Libre <OPTION>Viudo <OPTION>Divorciado </TD> </TR> </TABLE> <INPUT TYPE="submit" NAME="accion" VALUE="Grabar"> </FORM> <?php if($_POST['accion']){ $link=mysql_connect("localhost","root","cun2009"); mysql_select_db("basecurso",$link); $Sql="insert into tablacurso(cedula,nombre,direccion,telefono,email,sexo,estado) values ('$cedula','$nombre','$direccion','$telefono','$email','$sexo','$estado')"; mysql_query($Sql,$link); } ?> <hr> </body> </html>