Salve a tutti, sto cercando di capire come vengono gestite le transazioni tra php e mysql.
L'esempio stupido che sto cercando di fare è questo:
<?php
// put your code here
echo "SONO QUI";
$host="localhost"; // l'hostname
$user="root"; // username
$password="root"; // password
$database="provaCommitt"; // database
$db = mysql_connect($host, $user, $password)
or die ("Impossibile connettersi al server ");
mysql_select_db($database, $db) //restituisce vero se ci si connette al db di interesse
or die ("Impossibile connettersi al database $database");
//inizio le operazioni atomiche
mysql_quey("SET AUTOCOMMIT=0")or die("errore set autocommitt");
mysql_query("start transaction") or die("errore start transaction");
$errore=false;
echo "
ERRORE INIZIALE: ";
echo $errore;
$query1="insert into padre(idPadre, nomePadre) values (112,'XXX')";
if (!($dbResult=mysql_query($query1))) {
$errore=true;
echo "
ERRORE PRIMO: ";
echo $errore;
}
$query2="insert into figlio (idFiglio,idPadre,nomeFiglio) values (2,1,'Qui')";
if (!($dbResult2=mysql_query($query2))) {
$errore=true;
echo "
ERRORE SECONDO: ";
echo $errore;
}
echo "
ERRORE FINALE: ";
echo $errore;
if (!$errore) {
mysql_query("commit") or die("errore nel commit");
echo "
COMMIT EFFETTUATA
";
}
else {
mysql_query("rollback") or die("errore nel rollback");
echo "
INSERIMENTO NON EFFETTUTATO</br>";
}
?>
Ma non funziona!