Intereting Posts
Php code formatter / beautifier и php beautification вообще Пример PHP для PayPal Adaptive Payments ConvertCurrency API Создание единого случайного купона Magento Не удается отправить JSON в виде строки через AJAX Если существует обновление else, добавьте в один запрос Преобразование между нелогично отформатированными датами (смена / слэш / на -dash-) Интерфейс laravel не связывает почему? Странные значения x & y POST отправляются в форме Перестановки – все возможные наборы чисел MYSQL: копирование данных из двух баз данных. Обе базы данных находятся на разных серверах (хостинговые компании) WordPress включает («../../../ wp-blog-header»); провал Как читать большие листы из больших файлов Excel (27 МБ +) с помощью PHPExcel? Как использовать амперсанды в PHP GET URL-переменная (или аргумент функции)? Организация дат со временем и часовыми поясами. (Преобразование в точную метку времени.) Лучшая практика для HTML-заголовка в PHP

Как обрабатывать исключения PDO

Я пытаюсь работать с PDO классом на php, но у меня есть некоторые проблемы, чтобы найти правильный способ обработки ошибок, я написал этот код:

 <?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 ?> 

эта часть кода не сообщает об ошибках, но она просто не работает, $status var $status внизу, возвращает нулевое значение.

может кто-нибудь помочь мне найти, где я ошибаюсь?

PDO не будет генерировать исключения, если вы не сообщите об этом. Вы запустили:

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

на объекте PDO?

Вы можете добавить атрибут один раз, когда вы подключаете 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; } } 

благодаря