You are on page 1of 10

“Aplicaciones Web dinámicas

con PHP y MySql”

Funciones PHP para el acceso a


Bases de Datos MySQL

RDBMS

Sergio Gabriel Rodríguez


http://www.3trex.com.ar

Acceso a una Base de Datos


• Una vez que tenemos creada la base de datos en nuestro
servidor, el siguiente paso es conectarnos a la misma desde una
página PHP. Para ello PHP nos proporciona una serie de
instrucciones para acceder a bases de datos MySQL.

• Los pasos para acceder desde PHP a una base de datos son los
siguientes:
1. Conectarse con el servidor de Base de Datos.
2. Seleccionar la Base de Datos con la que vamos a trabajar.
3. Enviar la instrucción SQL a la Base de Datos.
4. Obtener y procesar los resultados.

5. Cerrar la conexión con el servidor.


Acceso a una Base de Datos
•Las Instrucciones para conectar con una Base de Datos MySQL en
PHP para cada uno de estos pasos son:
1. Conectarse con el servidor de Base de Datos.
mysql_connect()
2. Seleccionar la Base de Datos con la que vamos a trabajar.
mysql_select_db()
3. Enviar la instrucción SQL a la Base de Datos.
mysql_query()
4. Obtener y procesar los resultados.
mysql_fetch_row(), mysql_fetch_array()
1. Cerrar la conexión con el servidor.
mysql_close();

Acceso a una Base de Datos


Solicitud de una página web dinámica con Base de datos
El cliente solicita una El server busca el
Página dinámica Script solicitado
El script tiene código de
Internet acceso a BD

El documento HTML generado es


enviado al cliente

El navegador interpreta y El script PHP genera un


muestra el HTML documento HTML a partir
de los datos extraídos de la
BD PHP se conecta y
accede a la BD
Conectarse con el server de BD
• Al ejecutar la instrucción mysql_connect creamos un vínculo entre
la base de datos y la pagina PHP, este vínculo será usado
posteriormente en las consultas que hagamos a la base de datos.

Devuelve un identificador de la conexión en caso de éxito y false en


caso contrario

Sintaxis:

$conexion = mysql_connect (servidor, username, password);


Ejemplo:

$conexion = mysql_connect (“localhost”, “cursophp”, “password”)


or die (“No se puede conectar con el servidor”);

Seleccionar una Base de Datos


• mysql_select_db: establece la BD activa que estará asociada con
el identificador de conexión especificado. Si no se específica un
identificador de conexión, se asume la última conexión abierta.

Devuelve true en caso de éxito y false en caso contrario

Sintaxis:

$db = mysql_select_db (nombreBD, identificador);

Ejemplo:

$conexion = mysql_select_db (“movieStore”);


Enviar instrucción SQL a la BD
• Una vez que nos hemos conectado con el servidor de bases de
datos, y seleccionado la BD, ya podemos realizar consultas a las
tablas de la base de datos.

mysql_query: Envía una consulta de MySQL a la base de datos


especificada en la conexión activa.

Sintaxis:

$sqlResult = mysql_query (instrucción, conexion);

Ejemplo:

$sqlResult = mysql_query (“SELECT * FROM genero”);

Enviar instrucción SQL a la BD


Valores retornados:

Para las sentencias SELECT, SHOW, DESCRIBE o EXPLAIN,


mysql_query() regresa un tipo resource (recurso) en caso exitoso,
y FALSE en error.

Para otro tipo de sentencia SQL, UPDATE, DELETE, DROP, etc,


mysql_query() regresa TRUE en caso exitoso y FALSE en error.

Recurso:

Un recurso es una variable especial, que contiene una referencia a


un recurso externo. Los recursos son creados y usados por
funciones especiales.
Obtener y procesar los resultados
• Después de haber realizado la consulta sql a la bd, y si todo salió
bien, obtenemos una variable tipo recurso con el resultado de la
misma, para acceder a este resultado y procesarlo debemos usar
funciones especiales.

mysql_fetch_row: Devuelve un array numérico con los valores de


los campos de la fila actual de la consulta, y mueve el puntero
interno que marca la fila actual a la siguiente fila, si no hay mas filas
devuelve false. El índice de la tabla comienza en 0.

Sintaxis:

$fila = mysql_fetch_row(query_result);

Obtener y procesar los resultados


• Ejemplo 1: La consulta devuelve un solo registro

<?php

$resultado = mysql_query("SELECT id, nombre FROM genero WHERE id = 2");

if (!$resultado) {
echo ‘error al intentar ejecutar la consulta’;
exit();
}
$fila = mysql_fetch_row($resultado);
echo $fila[0]; // 2
echo $fila[1]; // Terror

?>
Obtener y procesar los resultados
• Ejemplo 2: La consulta devuelve más de un registro

<?php

$resultado = mysql_query("SELECT id, nombre FROM genero WHERE id = 2");

if (!$resultado) {
echo ‘error al intentar ejecutar la consulta’;
exit();
}
while($fila = mysql_fetch_row($resultado)){
echo ‘id: ’.$fila[0]. ‘nombre: ’.$fila[1]. ‘<br>’;
}
?>

Obtener y procesar los resultados


•mysql_fetch_array: Devuelve un array asociativo con los valores
de los campos de la fila actual de la consulta, y mueve el puntero
interno que marca la fila actual a la siguiente fila, si no hay mas filas
devuelve false. Los índices del array son los nombres de los campos
seleccionados.

Sintaxis:

$fila = mysql_fetch_array(query_result);
Obtener y procesar los resultados
• Ejemplo 1: La consulta devuelve un solo registro

<?php

$resultado = mysql_query("SELECT id, nombre FROM genero WHERE id = 2");

if (!$resultado) {
echo ‘error al intentar ejecutar la consulta’;
exit();
}
$fila = mysql_fetch_array($resultado);
echo $fila[‘id’]; // 2
echo $fila[‘nombre’]; // Terror

?>

Obtener y procesar los resultados


• Ejemplo 2: La consulta devuelve más de un registro

<?php

$resultado = mysql_query("SELECT id, nombre FROM genero WHERE id = 2");

if (!$resultado) {
echo ‘error al intentar ejecutar la consulta’;
exit();
}
while($fila = mysql_fetch_array($resultado)){
echo ‘id: ’.$fila[‘id’]. ‘nombre: ’.$fila[‘nombre’]. ‘<br>’;
}
?>
Cerrar la conexión con el servidor
•mysql_close: cierra la conexión a la base de datos MySQL
asociada al identificador de conexión especificado. Si no se
especifica un identificador de conexión, se asume le de la última
conexión abierta.

Devuelve: TRUE si se ha cerrado correctamente, FALSE en caso de


errror.

Esta función no es normalmente ya que la conexión se cerrará


automáticamente al final de la ejecución del script o página

Sintaxis:

mysql_close(identificador);

Otras funciones

•mysql_num_rows(query_result): Devuelve el número de filas del


resultado de una consulta.

$cantidadFilas = mysql_num_rows($resultado);

•mysql_error(): Devuelve el texto asociado al error producido en la


última operación realizada por la base de datos.

if (!mysql_query($consulta){
echo “error :”. mysql_error();
}
Otras funciones
•mysql_insert_id(): Esta función devuelve el ID (identificador)
generado para los campos autonuméricos (AUTO_INCREMENTED).
El ID devuelto es el correspondiente al de la última operación
INSERT.

$ultimoID = mysql_insert_id();

Ejemplo
• Si tenemos la tabla ‘Pelicula’ con 5 campos: id, titulo, director,
genero y fecha_alta, de la cual seleccionamos sólo aquellas
películas del género ‘Acción’

PELICULA
1 Título 1 Director 1 Terror 05/02/2004

2 Título 2 Director 2 Acción 05/02/2004

3 Título 3 Director 3 Acción 04/02/2004

4 Título 4 Director 4 Suspenso 01/02/2004

5 Título 5 Director 5 Acción 31/01/2004

$sqlResult = mysql_query(“SELECT * FROM pelicula


WHERE genero=‘Acción’”);
Ejemplo

• La consulta nos devolvería una variable tipo resource $sqlResult


con 3 registros.

PELICULA
1 Título 1 Director 1 Terror 05/02/2004

2 Título 2 Director 2 Acción 05/02/2004

3 Título 3 Director 3 Acción 04/02/2004 $sqlResult

4 Título 4 Director 4 Suspenso 01/02/2004 $nfilas=3


5 Título 5 Director 5 Acción 31/01/2004

$nfilas = mysql_num_rows($sqlResult);

Ejemplo
• Para obtener el resultado de la consulta y mostralos, necesitamos
recorrer la variable $sqlResult con las funciones mysql_fetch_row o
mysql_fetch_array.

$nfilas = mysql_num_rows ($sqlResult);

if ($nfilas > 0)
{
for ($i=0; $i<$nfilas; $i++) {

$fila = mysql_fetch_array ($sqlResult);


echo $fila[‘id’].$fila[‘titulo’];
}
}

You might also like