Mostrando entradas con la etiqueta UPDATE SET. Mostrar todas las entradas
Mostrando entradas con la etiqueta UPDATE SET. Mostrar todas las entradas

martes, 25 de febrero de 2014

Hacer consultas con PDO PHP


Bienvenid@s a continuación vamos a ver como realizar consultas con la extensión PDO de PHP.

Lo primero es asignar la conexión al driver específico, por ejemplo, mysql ...


$usuario = 'root';
$password = 'password';
$host = 'localhost';
$db = 'ejemplo';
$conexion = new PDO("mysql:host=$host;dbname=$db", $usuario, $password);

A continuación, realizar una consulta SELECT asignando signos de interrogación para cada parámetro, por ejemplo ...


/*Consulta SQL*/
$sql = "SELECT * FROM tabla WHERE id=? AND nombre=?";
/*Datos recibidos*/
$id = 1; 
$nombre = 'Fernando';
/*Preparar la consulta*/
$consulta = $conexion->prepare($sql);
/*Vincular el primer parámetro que corresponde al primer signo de interrogación*/
$consulta->bindParam(1, $id, PDO::PARAM_INT);
/*Vincular el segundo parámetro que corresponde al segundo signo de interrogación*/
$consulta->bindParam(2, $nombre, PDO::PARAM_STR);
/*Ejecutar la consulta*/
$consulta->execute();
/*Obtener el total de filas de la consulta*/
$total = $consulta->rowCount();
/*Comprobar si no hay ningún resultado*/
if($total == 0)
{
echo "No hay resultados que mostrar";
}
else //Entonces si mostrar la/s fila/s
{
while($fila = $consulta->fetch())
{
echo '<p>' . $fila['id'] . ':' . $fila['nombre'] . '</p>';
}
}

A continuación, realizar una consulta UPDATE SET asignando claves para cada parámetro, por ejemplo ...


$sql = "UPDATE tabla SET campo1=:campo1 AND campo2=:campo2";
/* Datos recibidos */
$campo1 = 1;
$campo2 = 'string';
/* Preparar la consulta */
$consulta = $conexion->prepare($sql);
/*Vincular los parámetros por su clave*/
$consulta->bindParam(':campo1', $campo1, PDO::PARAM_INT);
$consulta->bindParam(':campo2', $campo2, PDO::PARAM_STR);
/* Comprobar si ha habido algún error */
if(!$consulta)
{
echo "Ha ocurrido un error";
}
/* de lo contrario actualizar el registro */
else 
{ 
$consulta->execute();
echo "Registro actualizado correctamente";
}