Ovako glasi moj kod:
$m = new mysqli("localhost", "root", "", "baza");
$m->autocommit(false);
echo $m->query("INSERT INTO tbl1 VALUES (7)");
echo $m->rollback();
$m->close();
Kada pokrenem ovaj kod i startujem, mislim da bi logicno bilo da se ne upise nista, medjutim meni se u bazi posle izvrsavanje ovog koda ipak upisalo u tabali tbl1 vrednost 7. Tabela tbl1 sadrzi samo jedno polje "id".
ovo echo sto sam stavio ispred ova dva reda i sluzi mi da vidim da li je vratilo true za obe izvrsene naredbe i na ekranu je ispisalo dve jedinice, sto znaci da su obe naredbe izvrsene kako treba.
kada sam proverio ovaj kod :
$m = new mysqli("localhost", "root", "", "baza");
$m->autocommit(false);
$result = $m->query("SELECT @@autocommit");
if ($result) {
$row = $result->fetch_row();
printf("Autocommit is %s\n", $row[0]);
$result->free();
}else{
echo "JOK";
}
$m->close();
na ekranu se pojavilo Autocommit is 0, sto zanci da je autocommit setovano na false. Stvarno mi nije jasno u cemu je problem.
Ima li neko ideju?
Hvala.