1.- Conectar a la base de datos usando try/catch.
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass");
2.- Preparar la consulta (insert,update,delete).
2.1.- Preparar la consulta:
$stmt = $pdo->prepare("INSERT INTO alumnos( nombre, apellidos) values ( 'Taylor','Swift' )");
$stmt = $pdo->prepare("INSERT INTO colegas (name, addr, city) values (?, ?, ?)");
$stmt = $pdo->prepare("INSERT INTO colegas (name, addr, city) value (:name, :addr, :city)");
2.2.- Asignar parámetros en la consulta:
$stmt->bindParam(':name', $name);
$name='Pepito';
$datos = array('Cathy', '9 Dark and Twisty Road', 'Cardiff');
$stmt = $pdo->prepare("INSERT INTO colegas (name, addr, city) values (?, ?, ?)");
$datos = array( 'name' => 'Cathy', 'addr' => '9 Dark and Twisty', 'city' => 'Cardiff' );
$stmt = $pdo->prepare("INSERT INTO colegas (name, addr, city) value (:name, :addr, :city)");
2.3.- Ejecutar la consulta
try{
$stmt->execute();
// o bien
$stmt->execute($datos);
}
catch(PDOException $err)
{
// Mostramos un mensaje genérico de error.
echo "Error: ejecutando consulta SQL.";
}
2.- Preparar la consulta (select).
2.1.- Preparar la consulta:
try{
// ATENCION: si no tenemos parámetros en la consulta, la podemos ejecutar con ->query (recomendable en SELECT) o con ->exec (para INSERT, UDPATE, DELETE)
$stmt = $pdo->query('SELECT name, addr, city from colegas');
}
catch(PDOException $err)
{
// Mostramos un mensaje genérico de error.
echo "Error: ejecutando consulta SQL.";
}
$stmt = $pdo->prepare('SELECT name, addr, city from colegas where city =:ciudad'); (con parámetros)
$datos = array( ':ciudad' => 'Santiago');
try{
$stmt->execute($datos);
}
catch(PDOException $err)
{
// Mostramos un mensaje genérico de error.
echo "Error: ejecutando consulta SQL.";
}
2.2.- Leemos los datos del recordset (conjunto de registros) que nos devuelve SELECT en el objeto PDOStatement.
2.2.1.- Se puede leer cada fila del recordset con ->fetch() del objeto PDOStatement o mediante ->fetchAll() (obtiene todas las filas del recordset).
'''Este bloque de código lo ejecutaremos dentro de la sección try { ..... }'''
while($row = $stmt->fetch()) {
echo $row['name'] . "<br/>";
echo $row['addr'] . "<br/>";
echo $row['city'] . "<br/>";
}
$row = $sql->fetchAll();
foreach($data as $row)
$id = $row['id'];
$content = $row['content'];
}
3.- Cerrar la conexión.
// Liberamos los recursos utilizados por el recordset $stmt
$stmt=null;
// Se recomienda cerrar la conexión para liberar recursos de forma más rápida.
$pdo = null;