Возможно, могут быть причины, по которым оболочка доступа к данным должна знать, когда была запущена / завершена транзакция. Например, в моей голове, схема пула соединений должна знать, когда было завершено ранее использованное соединение в середине транзакции, и не возвращать его в пул соединений для повторного использования в этом случае.
Мне не известны какие-либо проблемы в mysqli
, которые требовали бы от вас использования нативного метода, а не версии SQL, но, возможно, в общем случае ... вот почему он только «иногда должен». В любом случае, метод PHP легче читать, чем версию SQL-строки, так что я бы сказал, что все равно пойдет с этим.