track tag attribute php mysql pdo exception-handling

php - tag - Cómo manejar las excepciones de la DOP



tooltip title (2)

DOP no lanzará excepciones a menos que usted lo indique. Has corrido

$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

en el objeto PDO?

Esta pregunta ya tiene una respuesta aquí:

Estoy tratando de trabajar con la clase PDO en php, pero tengo algunos problemas para encontrar la manera correcta de manejar los errores, escribí este código:

<?php // $connection alreay created on a class which works with similar UPDATE statements // I''ve simply added here trim() and PDO::PARAM... data type $id = 33; $name = "Mario Bros."; $url = "http://nintendo.com"; $country = "jp"; try { $sql = "UPDATE table_users SET name = :name, url = :url, country = :country WHERE user_id = :user_id"; $statement = $connection->prepare ($sql); $statement->bindParam ('':user_id'', trim($id), PDO::PARAM_INT); $statement->bindParam ('':name'', trim($name), PDO::PARAM_STR); $statement->bindParam ('':url'', trim($url), PDO::PARAM_STR); $statement->bindParam ('':country'', trim($country), PDO::PARAM_STR, 2); $status = $statement->execute (); } catch (PDOException $e) { print $e->getMessage (); } print $status; // it returns a null value, and no errors are reported ?>

esta parte del código no informa errores, pero simplemente no funciona, el $status var $status en la parte inferior devuelve un valor nulo.

¿Puede alguien ayudarme a encontrar donde me equivoco?


Puedes agregar el atributo una vez mientras te conectas a mysql.

function connect($dsn, $user, $password){ try { $dbh = new PDO($dsn, $user, $password, array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING)); } catch (PDOException $e) { echo ''Connection failed: '' . $e->getMessage(); exit; } }

Gracias