Я знаю, что этот вопрос был там много раз, но у меня нет ответа.
Мой PDO просто не выдает никакой ошибки ... или что-то перехватывает ошибку передо мной.
Я довольно новичок в php, и мне неприятно не понимать простые вещи.
Вот мой код инициализации
$pdo = new PDO("mysql:host=" . $db['host'] . ";dbname=" . $db['dbname'], $db['user'], $db['pass']);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
и пример, где я, например, вставляюдублирующаяся строка с ограничением уникальности (но та же проблема для неизвестной строки или любого исключения pdo ...)
$columnString = "....";
$valueString = "....";
$sql = "INSERT INTO " . $table . " (" . $columnString . ") VALUES (" . $valueString . ")";
try {
$stmt = $this->pdo->prepare($sql);
foreach($request_data as $key => $value){
$stmt->bindValue(':' . $key,$request_data[$key]);
}
$stmt->execute();
} catch (PDOException $e) {
return null;
}
Конечно, этот код хорошо работает, когда не возникает проблем с базой данных.
Я использую Slim 3 Framework и php7.Та же проблема с php5.
Это как-то связано с фреймворком?Есть ли другие конфигурации?Почему, черт возьми, исключения не кау?