Ответ 1
Это зависит от того, что вы подразумеваете под "успешным". Если вы имеете в виду, что запрос выполняется без сбоев, то PDO
либо выдаст исключение при ошибке, либо возвращает FALSE
из PDOStatement::execute()
, в зависимости от того, какой режим ошибки вы установили, поэтому "успешный" запрос в этом случае просто быть тем, в котором метод execute не возвращал FALSE
или генерировал исключение.
Если вы имеете в виду "успешный" в том, что были обновлены строки (в сравнении с обновленными только 0 строками), вам нужно будет проверить, что с помощью PDOStatement::rowCount()
, в котором будет указано количество затронутых строк из предыдущего запроса.
Предупреждение. Для обновлений, где newvalue = oldvalue
PDOStatement::rowCount()
возвращает ноль. Вы можете использовать
$p = new PDO($dsn, $u, $p, array(PDO::MYSQL_ATTR_FOUND_ROWS => true));
чтобы отключить это неожиданное поведение.