Фиксация и откат не работают на exec ()? - PullRequest
0 голосов
/ 04 октября 2018

Я выучил коммит и откат с pdo.Когда я делаю это с простым query(), он работает нормально, но когда я добавляю транзакции для exec(), rollback() не работает.

$tables = array("applicant_course", "applicant_course_time", "course",'session_course_sort_data','sessions_attendee','sessions');
$conn = new PDO("mysql:host=" . $db_host_target . ";port=".$db_port_target.";dbname=" . $db_name_target , $db_user_target, $db_password_target);
$conn->setAttribute(PDO::ATTR_AUTOCOMMIT,0);
$conn->beginTransaction();

try {

foreach ($tables as $value) {
  $sql_file = fopen($value . '.sql', 'r');
  $sql = fread($sql_file, filesize($value . '.sql'));
  $conn->exec($sql); //here is exec()


}
$conn->rollback();//I have put rollback here for testing purposes
} catch (Exception $e) {
// An exception has been thrown
// We must rollback the transaction
echo 'error<br>';
$conn->rollback();
}

Можете ли вы указать мне, что мне делать, чтобывыполнить транзакции для exec().Я также могу загрузить .sql файл, если вам это нужно.Спасибо

...