Как правильно обрабатывать ошибки с транзакциями и подготовленные операторы при использовании mysqli?mysqli - обработка ошибок с транзакциями
Отрывок:
<?php
$conn = require_once 'dbconn.php';
$conn->autocommit(FALSE);
$stmt_ins_option = $conn->prepare('INSERT INTO options(option_name) VALUES(?)');
$option_name = 'foo';
$stmt_ins_option->bind_param('s', $option_name);
$stmt_ins_option->execute();
$conn->commit();
if($conn->errno) {
$conn->rollback();
echo $conn->error;
}
Это не добавит его во второй раз, потому что есть ограничение уникальности на этой колонке.
Однако сценарий также не сообщает об ошибке.
Что мне не хватает?
Есть ли способ сделать mysqli-классы исключениями вместо того, чтобы мне приходилось каждый раз проверять ошибки? – Flavius
@Flavius: Я не худею так (возможно, я ошибаюсь, я не работал с php некоторое время). Тем не менее, у вас всегда есть возможность написать собственный класс, который наследует от mysqli и переопределяет пару методов, поэтому они генерируют исключение. – a1ex07