A continuación vamos a mostrarte un sencillo ejemplo de cómo trabajar con bases de datos MySQL, para ello en la base de datos test crea la siguiente tabla que utilizaremos en el ejemplo:
create table tbl_personas (
id integer unsigned not null,
nombre varchar(50) not null,
primary key (id)
)
A continuación creamos una función para realizar la conexión utilizando la funciones de PHP mysql_connect() para conectar con MySQL, mysql_select_db() para seleccionar la base de datos y mysql_error(), que nos devolverá un mensaje de error si se produjo alguno (lo detectamos con or die, que detendrá la ejecución):
<?php
function conectar_MySQL( $host, $user, $pass, $bd )
{
// Conectar con MySQL:
$conexion = mysql_connect( $host, $user, $pass ) or die ( "Error al conectar: ".mysql_error() );
// Seleccionar a la base de datos deseada
mysql_select_db($bd) or die ( "Error seleccionar la BD : ".mysql_error() );
return $conexion;
}
?>
Después creamos otra función que nos permite borrar todos los registros de la tabla o alguno determinado. Para procesar una consulta (tanto de selección como de actualización) usaremos la función mysql_query():
<?php
function borrarPersona( $conexion, $id )
{
$sql = "DELETE FROM tbl_personas";
// Si 'id' es diferente de 'null' sólo se borra la persona con el 'id' especificado:
if( $id != null )
$sql .= " WHERE id=".$id;
// Ejecutamos la consulta (se devolverá true o false):
return mysql_query( $sql, $conexion );
}
?>
Después creamos otra función para insertar un registro:
<?php
function insertarPersona( $conexion, $id, $nombre )
{
$sql = "INSERT INTO tbl_personas VALUES (".$id.", '".$nombre."')";
// Ejecutamos la consulta (se devolverá true o false):
return mysql_query( $sql, $conexion );
}
?>
Creamos una nueva función para modificar un registro:
<?php
function modificarPersona( $conexion, $id, $nombre )
{
$sql = "UPDATE tbl_personas SET nombre='".$nombre."' WHERE id=".$id;
// Ejecutamos la consulta (se devolverá true o false):
return mysql_query( $sql, $conexion );
}
?>
Veamos otra función de ejemlpo usada para listar la tabla completa, en la que usamos las funciones de PHP mysql_num_rows() (devuelve el número de registros encontrados) y mysql_fetch_object() (devuelve los valores de los campos en un Objeto de PHP):
<?php
function listarPersonas( $conexion )
{
$sql = "SELECT * FROM tbl_personas ORDER BY id";
$ok = true;
// Ejecutar la consulta:
$rs = mysql_query( $sql, $conexion );
if( $rs )
{
// Obtener el número de filas:
if( mysql_num_rows($rs) > 0 )
{
echo "<p/>LISTADO DE PERSONAS<br/>";
echo "===================<p />";
// Recorrer el resource y mostrar los datos:
while( $obj = mysql_fetch_object($rs) )
echo $obj->id." - ".$obj->nombre."<br />";
}
else
echo "<p>No se encontraron personas</p>";
}
else
$ok = false;
return $ok;
}
?>
Por último, creamos otra función que procesará una consulta y nos devolverá un Objeto en PHP con los datos del registro encontrado:
<?php
function buscarPersona( $conexion, $id )
{
$sql = "SELECT * FROM tbl_personas WHERE id=".$id."";
$devolver = null;
// Ejecutar la consulta:
$rs = mysql_query( $sql, $conexion );
if( $rs )
{
// Si se encontró el registro, se obtiene un objeto en PHP con los datos de los campos:
if( mysql_num_rows($rs) > 0 )
$devolver = mysql_fetch_object( $rs );
}
return $devolver;
}
?>
El código fuente principal del programa. Observa que debemos introducir los datos de acceso (dirección IP, usuario, contraseña y nombre de la base de datos) necesarios para poder conectar con MySQL:
<?php
// Conectar (se detendrá la ejecución si se produce un error):
$conexion = conectar_MySQL( "IP_DEL_SERVIDOR", "TU_USUARIO_MYSQL", "TU_PASSWORD", "test" );
// Borrar todos los datos de la tabla:
$ok = borrarPersona( $conexion, null );
if( $ok == false )
echo "Error al borrar los datos.<br/>";
else
echo "Datos borrados correctamente.<br/>";
// insertar una persona:
$ok = insertarPersona( $conexion, 1, 'Juan Rodríguez P.' );
if( $ok == false )
echo "Error al insertar los datos.<br/>";
else
echo "Datos insertados correctamente.<br/>";
// insertar una persona:
$ok = insertarPersona( $conexion, 2, 'Juan Rodríguez P.' );
// insertar una persona:
$ok = insertarPersona( $conexion, 3, 'Roberta Amador H.' );
// Modificar la persona número 2:
$ok = modificarPersona( $conexion, 1, "Alfredo Ramírez E." );
if( $ok == false )
echo "Error al modificar los datos.<br/>";
else
echo "Datos modificados correctamente.<br/>";
// Modificar la persona:
$ok = listarPersonas( $conexion );
if( $ok == false )
echo "<p>Error al listar los datos.</p>";
else
echo "<p>Datos listados correctamente.</p>";
$obj = buscarPersona( $conexion, 2 );
if( $obj == null )
echo "No se encontró la persona";
else
echo "El nombre de la persona con el código: [".$obj->id."] es [".$obj->nombre."]";
// Cerrar la conexión a MySQL
mysql_close( $conexion );
?>

Vea también: [ Funciones de MySQL ] - [ Configurar PHP para acceder a Bases de Datos ] - [ mysql_connect() ]

Vea también: [ mysql_select_db() ] - [ mysql_query() ] - [ mysql_errno() ] - [ mysql_error() ] - [ mysql_num_rows() ]

Vea también: [ mysql_fetch_object() ] - [ mysql_close() ]
Dado que mysql_connect() y mysql_select_db() sólo devuelven false en caso de error, puede resultar interesante la siguiente modificación que arrojará una excepción en tal caso:
<?php
function conectar_MySQL( $host, $user, $pass, $bd )
{
$conexion = null;
try
{
// Conectar con MySQL:
$conexion = mysql_connect( $host, $user, $pass );
if( $conexion )
{
// Seleccionar a la base de datos deseada:
if( mysql_select_db($bd) == false )
throw new Exception( "Error MySQL ".mysql_errno().": ".mysql_error() );
}
else
throw new Exception( "Error MySQL ".mysql_errno().": ".mysql_error() );
}
catch( Exception $e )
{
throw $e;
}
return $conexion;
}
?>
La siguiente función también nos resultará útil para obtener una excepción en caso de error, puesto que mysql_query() tampoco devuelve una sino sólo false:
<?php
function my_mysql_query( $sql, $conexion=null )
{
$rs = @mysql_query( $sql, $conexion );
if( $rs == false )
throw new Exception( "Error MySQL ".mysql_errno().": ".mysql_error() );
return $rs;
}
?>
NOTA: La arroba '@' se utiliza antes del nombre de una función para que no se muestren por pantalla mensajes de aviso o error (en caso de que se produzcan).

Vea también: [ Excepciones en PHP ] - [ Control de Excepciones en PHP ] - [ Exception ]