Aunque leo este foro desde hace tiempo, normalmente las dudas las resuelvo siempre mediante los buscadores, pero esta vez...
Normalmente los problemas que se suelen tener es que nuestro código genera errores que no sabemos solucionar, pero en este caso es lo contrario, quiero generar un error y php no lo hace.
Estoy empezando a usar la libreria PDO para trabajar con Mysql y me gusta capturar la mayor cantidad posible de errores para que la aplicación no los muestre al usuario. Y con la librería PDO los errores de sintaxis del lenguaje SQL no disparan errores. Mirad este código:
Código PHP:
try {
$this->conexion_db=new PDO("mysql:host=$host;dbname=$database", "$user", "$pass");
$this->conexion_db->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, TRUE);
$this->conexion_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo("<p>Imposible conectar con host: $host.</p>");
print "<p>Error: " . $e->getMessage() . "</p>\n";
die('Anote este mensaje y avise al administrador del sistema.');
}
Sin embargo aquí:
Código PHP:
$sql="ASELECT * FROM vuelos WHERE nif_certificador = :nif AND YEAR(fecha_despegue) = :anyo;"
$this->ConectarDB_PDO();
$this->conexion_db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try{
$result = $this->conexion_db->prepare($sql);
$result->execute(array(":nif" => $nif, ":anyo" => $anyo));
foreach( $result as $r){
$x[$i]=$r;
$i++;
}
} catch (PDOException $e) {
echo("<p>Error. No se puede continuar.</p>");
print "<p>Error: " . $e->getMessage() . "</p>\n";
die('Anote este mensaje y avise al administrador del sistema.');
}
¿Alguna sugerencia?
Saludos, Pakoff.