_Echo_
Новичок
Всем доброго времени суток!
Возник вопрос по поводу отлавливания Exception после разъединения с базой данных.
Есть такой код:
Предположим мне нужно отследить, на каком значении массива произошел сбой,
т. е. какое значение не занеслось в БД.
Сейчас скрипт выдает Fatal Error и не попадает в блок catch.
Даже если PDO автоматически делает rollBack, то как отследить когда произошел сбой?
Возник вопрос по поводу отлавливания Exception после разъединения с базой данных.
Есть такой код:
PHP:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=practica', 'root', '');
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$names = ['Aaa', 'Bbb', 'Ccc'];
try{
$sql = "INSERT INTO user (name) VALUES (?)";
$result = $pdo->prepare($sql);
foreach($names as $key=>$name){
$pdo->beginTransaction();
echo $name;
if($key == 1){
//Здесь эмуляция разрыва соединения с базой данных
$pdo = NULL;
}
$result->execute([$name]);
$pdo->commit();
}
}catch(PDOException $e){
$pdo->rollBack();
echo "Ошибка: " . $e->getMessage();
}
?>
т. е. какое значение не занеслось в БД.
Сейчас скрипт выдает Fatal Error и не попадает в блок catch.
Даже если PDO автоматически делает rollBack, то как отследить когда произошел сбой?
Последнее редактирование модератором: