Я хочу сказать, что описанное поведение никак не отлавливается вообще, поскольку это фактически даже не ошибка, а тупо вывод в стдаут. Ссылку щас не найду.ты хочешь сказать, что вместо exception-ов надо отлавливать ошибки?
Гриш, не надо делать из меня идиота.если в catch стоит echo - конечно
а шо с этим не так?new PDO("mysql:nonexisten.domain");
Да все понятно уже!Тебе хотелось бы вот такой
он делает ровно то что тебе надоPHP:<?php $pdo = new PDO('mysql:host=localhost;dbname=practica', 'root', ''); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $names = ['Aaa', 'Bbb', 'Ccc']; $sql = "INSERT INTO user (name) VALUES (?)"; $result = $pdo->prepare($sql); foreach($names as $key=>$name){ if($key == 1){ throw new Exception("Fatal Error...!!! No record:/".$name."/"); } $result->execute([$name]); }
так, у нас перепонимание того, чего нет.Гриш, не надо делать из меня идиота.
Будет время - найду ту ветку, покажу. А тупо погыгыкать найди себе какой-нибудь другой повод.
Да, конструктор бросает исключения сам по себе, независимо от режима, да, но… В 5.6 он не перехватывает ошибок более низкого уровня.а шо с этим не так?
PHP Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен. in …/pdo-exceptions.php on line 3
PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Этот хост неизвестен. ' in …/pdo-exceptions.php:3
Stack trace:
#0 …/pdo-exceptions.php(3): PDO->__construct('mysql:host=none...')
#1 {main}
thrown in …/pdo-exceptions.php on line 3
Ну там просто добавили костылик видаПочему же никуда не денется?
Прекрасно девается в семёрке
zend_replace_error_handling()
...
zend_restore_error_handling()
try {
$pdo = new PDO(...);
} catch (PDOException $e) {
}