Ya entendi acerca de las transacciones, pero porque a las sentencias MYSQL les ponen el arroba(@,@mysql_query("BEGIN"),@mysql_query("COMMI T")) adelante, ya se que es una pregunta un poco basica, pero no entiendo muy bien, eso, yo se que en SQL para declarar variables se les pone el Arroba, pero, en este caso?
Código PHP:
<?php
// trans.php
function begin()
{
@mysql_query("BEGIN");
}
function commit()
{
@mysql_query("COMMIT");
}
function rollback()
{
@mysql_query("ROLLBACK");
}
@mysql_connect("localhost","username", "password") or die(mysql_error());
@mysql_select_db("test") or die(mysql_error());
$query = "INSERT INTO trans (id,item,quantity)
values (null,'Baseball',4)";
begin(); // transaction begins
$result = @mysql_query($query);
if(!$result)
{
rollback(); // transaction rolls back
echo "you rolled back";
exit;
}
else
{
commit(); // transaction is committed
echo "your insertion was successful";
}
?>