В документации MySQL, есть примечание об использовании mysql_affected_rows
после фиксации транзакции: http://php.net/manual/en/function.mysql-affected-rows.phpPDOStatement :: rowCount результат при использовании после PDO :: commit?
Примечание: Операции
Если вы используете транзакции, вам нужно позвонить mysql_affected_rows() после ваш запрос INSERT, UPDATE или DELETE, а не после COMMIT.
Однако нет такого примечания на PDOStatement::rowCount
документе: http://www.php.net/manual/en/pdostatement.rowcount.php
Означает ли это обязательство не будет влиять на подсчет измененных строк после того, как INSERT, UPDATE или DELETE запросов при использовании PDO
объекта?
после фиксации значение 'affected_rows' становится неясным. Общее количество строк, затронутых транзакцией ENTIRE? Или это просто количество строк, сделанных последней операцией в транзакции? Если были вложенные транзакции, которые были отброшены назад, должны быть подсчитаны любые строки, затронутые/отмененные, и т. Д. –
@MarcB. Дело в том, что это 'PDOStatement-> rowCount()' ie NOT 'PDO-> rowCount() 'поэтому СЛЕДУЕТ считать строку последним запросом не последней транзакцией. – Ozzy
mysql_affected_rows() - это еще один способ сделать PDOStatement-> rowCount(). Оба могут быть вызваны только после выполнения MySQL, поскольку в противном случае никакие строки не будут затронуты. –