php adodb StartTrans() не работает?

я использую библиотеку adodb для своего проекта php

я подключаюсь к mySQL 5.5 с PHP 5.1

то, что я пытаюсь сделать, это вставить 5 операторов SQL и 1 обновление. если хотя бы один из них не работает.. я хочу отменить все утверждения..

это мой код

$ado->StartTrans();
$ado->exequte($sql1);
$ado->exequte($sql2);
$ado->exequte($sql3);
$ado->exequte($sql4);
$ado->exequte($sql5);
$ado->CompleteTrans();

но вроде не работает. он просто выполняет все операторы SQL и не будет выполнять откат, даже если произойдет сбой (ы).

прямо сейчас я просто использую старый добрый оператор if .. если все в порядке, продолжайте, иначе откат.

документация adodb по этому поводу мне тоже не ясна.


person Raja Hafiz    schedule 29.04.2013    source источник
comment
что ты имеешь в виду there is a failure(s)? приведи нам пример неудачи   -  person Amir    schedule 29.04.2013
comment
например, если $sql2 не может быть запущен... результат $sql1 все еще фиксируется.   -  person Raja Hafiz    schedule 24.07.2013


Ответы (1)


В ADOdb есть два разных драйвера для MySQL:

  • mysql
  • mysqlt

Первый (то, что вы, вероятно, использовали) не поддерживает транзакцию, а второй поддерживает.

Попробуйте использовать драйвер mysqlt:

$conn = ADONewConnection("mysqlt");
person hayander    schedule 16.04.2014