php - ejemplo - asegurarse de que el resultado del método de obtención de PDO "falso" sea un error o un resultado vacío
php mysql connect (1)
¿Cómo puedo reconocer un error de búsqueda o un resultado vacío de un error de ejecución con el controlador php PDO mysql?
$sql = '' SELECT * '';
$sql .= '' FROM test '';
$sql .= '' WHERE id = 432 '';
$statement = $this->_db->prepare($sql);
$status = $statement->execute();
var_dump($status);
$result = $statement->fetch(/PDO::FETCH_ASSOC);
var_dump($result);
output:
bool(true)
bool(false)
Entonces, preparo la declaración con pdo, luego ejecuto sql, y el estado es verdadero porque no hay error. Luego busco el resultado, y en este caso específico, una fila con id = 432 no existe. Entonces, busca el método return false. Mi problema es que el método fetch devuelve falso también cuando hay un error !.
¿Cómo puedo estar seguro de que el resultado "falso" es un error o un resultado vacío?
Si hay un error, entonces PDO arrojará una excepción que puede atrapar. Envuelva su código con una captura de prueba y eso debería detectar cualquier excepción.
try {
$rs = $db->prepare(''SELECT * FROM foo'');
$rs->execute();
$foo = $rs->fetchAll();
} catch (Exception $e) {
echo ''Error: ''.$e->getMessage();
}