如何在执行前确保脚本完全执行?

时间:2016-05-15 13:06:40

标签: php mysql

我有一个包含一些查询的脚本:

$id    = $_GET['id'];
$value = $_GET['val'];

// database connection here

// inserting
$stm1 = $db_conn->prepare("INSERT into table1 (col) VALUES (?)");
$stm1->execute(array($value));

// updating
$stm2 = $db_conn->prepare("UPDATE table2 SET col = "a new row inserted" WHERE id = ?");
$stm2->execute(array($id));

如您所见,有两个陈述(insertupdate)。我所要做的就是确保它们都能正常工作或者没有工作。

我的意思是我想在这两个语句之间实现依赖关系。如果更新失败,则插入不起作用,反之亦然。我怎么能这样做?

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

您可以使用交易,PDO有此api(http://php.net/manual/en/pdo.begintransaction.php),

var

答案 2 :(得分:1)

正如其他人所说,你可以使用'交易'

或者 你可以mannualy检查数据是否在数据库中是正确的。只需选择'你插入了什么。

执行'功能返回' true'成功或虚假'失败了。你可以这样做:

$isDone=$stm1->execute(array($value));

if(!$isDone){
    echo 'Operation fails, I will stop.';
    return false;

}