2015-07-11 38 views
0

我有一段PHP代码,其中获取表单数据,对数据库执行DELETE操作,然后从表单中插入所有数据。使用事务处理的PHP查询

我想在try和catch中使用MySQL中的“transitions”来增加此代码的安全性。因此,如果插入不顺利时,DELETE没有影响

这里是我的代码:

$res = $conn->query("DELETE FROM `pm_buonipasto` 
          WHERE idprimanota = '$idprimanota' 
          AND tipologia = '$tipologiascelta' "); 
if (!$res) { 
    printf("Errormessage: %s\n", $conn->error); 
    exit(0); 
} 

$insert = $conn->query("INSERT INTO `pm_buonipasto` 
          (`id`, `idprimanota`, `nome`, 
          `tipologia`, `prezzatura`, `qt`) 
        VALUES (NULL,'$idprimanota','$nome', 
          '$tipologia','$prezzatura','$qt') 
         "); 
if (!$insert) { 
    printf("Errormessage: %s\n", $conn->error); 
    exit(0); 
} 

如何使用交易与MySQL做提交和回滚?

+0

这不是“过渡”,而不是“transiction” - 你的意思是...... _transactions_(此处插入BTTF2老比夫报价) - http://php.net/manual /en/mysqli.quickstart.transactions.php – CBroe

回答

0

试试这个方法:

mysql_query("BEGIN"); 

$query1 = mysql_query("YOUR MYSQL QUERY HERE"); 
$query2 = mysql_query("YOUR MYSQL QUERY HERE"); 

if ($query1 and $query2) { 
    mysql_query("COMMIT"); 
} else {   
    mysql_query("ROLLBACK"); 
}