PHP查询使用事务

时间:2015-07-11 11:15:32

标签: php mysqli

我有一段PHP代码,我获取表单数据,在数据库上执行DELETE,然后从表单中插入所有数据。

我想使用" transition"来提高此代码的安全性。在MySQL中尝试和捕获。因此,如果INSERT不顺利,则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事务进行提交和回滚?

1 个答案:

答案 0 :(得分: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");
}