Академический Документы
Профессиональный Документы
Культура Документы
Apertura de la conexin
La funcin que permite la conexin con el servidor es: mysql_connect (servidor, usuario, contrasea) Los tres parmetros anteriores permiten identificar el servidor sobre el que est instalado MySQL, y el nombre de usuario y contrasea necesarios para conectarse. Estos dos ltimos datos deben coincidir con los de un usuario registrado en MySQL. Cuando el servidor MySQL y el servidor web se encuentran en el mismo equipo la identificacin del servidor para realizar la conexin es localhost; en este caso adems, este parmetro sera opcional en la funcin mysql_connect(), ya que precisamente el valor por defecto es localhost. La funcin mysql_connect() devuelve un valor entero que se utilizar como identificador de la conexin en las operaciones posteriores. Si se produce un error en la conexin, el valor devuelto por la funcin ser 0.
Cierre de la conexin
La conexin realizada se cierra automticamente al terminar la ejecucin del script en el que se ha establecido, o bien explcitamente con la funcin mysql_close(). Esta funcin recibe como nico argumento el identificador de la conexin: mysql_close (identificador) El identificador de la conexin en la funcin mysql_close() es opcional, en caso de que no se indique se cerrar la ltima conexin abierta. La funcin mysql_close() devuelve un valor entero que ser nulo en el caso de que se produzca algn error en el proceso.
ASIX Mdulo 9
De esta manera, el esquema general de un programa que realiza conectividad con MySQL sera: $conexion = mysql_connect(localhost, root, die("Error en la conexin: " .mysql_error()); mysql_close($conexion); miclave) or
En primer lugar se realiza la conexin con el servidor local y utilizando como nombre de usuario root y contrasea miclave. Se asigna el identificador de la conexin a la variable $conexion, y se comprueba si su valor es distinto de cero. Si la variable $conexion toma el valor nulo se deber a un error de conexin, por tanto se utiliza la funcin die() para mostrar el correspondiente aviso de error y abortar la ejecucin del resto del programa. Si la conexin se estableci satisfactoriamente, se continuar la ejecucin del programa y finalmente, se cerrar la conexin. En el caso de no utilizar la funcin mysql_close(), cualquier conexin realizada con mysql_connect() se cerrar automticamente al finalizar la ejecucin del script. No obstante, si se desea que la conexin permanezca abierta para ser utilizada en programas de otras pginas que se ejecuten posteriormente, puede utilizarse una funcin alternativa para la apertura: mysql_pconnect (servidor, usuario, contrasea) La sintaxis de esta funcin es idntica a la de la funcin mysql_connect(). Este tipo de conexiones que no se cierran automticamente se denominan conexiones persistentes. El cierre de las conexiones persistentes debe realizarse con una funcin especial: mysql_pclose (identificador)
ASIX Mdulo 9
$bd = mysql_select_db (videoteca, $conexion) or die("Error en la seleccin de la base de datos: " .mysql_error()); Una vez seleccionada la base de datos, esta pasa a ser la base de datos activa, y cualquier operacin posterior se dirigir a ella. En cualquier momento, mientras la conexin permanezca abierta, puede cambiarse la seleccin de la base de datos activa con una nueva llamada a la funcin mysql_select_db().
ASIX Mdulo 9
Existe otra funcin similar que permite ejecutar sentencias sobre cualquier base de datos, en este caso debe indicarse adems de la sentencia y el identificador de conexin, el nombre de la base de datos a la que se dirige la consulta: mysql_db_query (nombreBD, sentencia, identificador)
ASIX Mdulo 9
Relacionada con esta ltima funcin est la funcin: mysql_affected_rows() Que devuelve el nmero de registros que se han visto afectados por la ltima consulta realizada de insercin, actualizacin o borrado. Una versin extendida de mysql_fetch_row() es mysql_fetch_array() mysql_fetch_array (resultado [, int tipo_de_resultado]) Devuelve una matriz que corresponde a la sentencia extrada, o falso si no quedan ms filas. Adems de guardar los datos en el ndice numrico de la matriz, guarda tambin los datos en los ndices asociativos, usando el nombre de campo como clave. Si dos o ms columnas del resultado tienen el mismo nombre de campo, la ltima columna toma la prioridad. Para acceder a la(s) otra(s) columna(s) con el mismo nombre, se debe especificar el ndice numrico o definir un alias para la columna.
ASIX Mdulo 9
Ejemplo videoteca.php: <?php $servidor="localhost"; $usuario="usuario"; $password="php"; $base="videoteca"; $conexion = mysql_connect($servidor,$usuario,$password) or die("Error en la conexin: " .mysql_error()); mysql_select_db($base,$conexion) or die("Error en la seleccin: " .mysql_error()); $consulta = "SELECT * FROM genero"; $resultado = mysql_query($consulta,$conexion) or die("Error en la consulta de seleccin: " .mysql_error()); if (mysql_num_rows($resultado) == 0){ echo ("No hay datos en la tabla"); mysql_close($conexion); exit(); } else{
?> <h2>Datos de la videoteca</h2> <table border="1" width="200" height="150"> <tr bgcolor="gray"> <th>Id</th> <th>Nombre</th> <th>Descripcin</th> </tr> <?php while($fila = mysql_fetch_array($resultado)){ echo "<tr>"; echo "<td>". $fila["id"]."</td>"; echo "<td>". $fila["nombre"] ."</td>"; echo "<td>". $fila["descripcion"] ."</td>"; echo "</tr>"; } ?> </table> <?php }//Cierre del else //Liberamos la memoria del resultado de la consulta mysql_free_result($resultado); //Cerramos la conexin mysql_close($conexion); ?>