欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php 事務(wù)保存

php事務(wù)保存指的是在數(shù)據(jù)處理中,將一系列的操作綁定在一起,只有當(dāng)所有操作都執(zhí)行成功時(shí),才將結(jié)果提交到數(shù)據(jù)庫(kù)中,否則所有操作都將被撤銷。

假設(shè)我們有一個(gè)訂單處理系統(tǒng),涉及到兩張表:訂單表(order)和訂單詳情表(order_detail)。訂單表保存每個(gè)訂單的基本信息,比如訂單號(hào)、訂單金額等等;訂單詳情表保存每個(gè)訂單對(duì)應(yīng)的商品信息。

CREATE TABLEorder(idint(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',order_novarchar(20) DEFAULT NULL COMMENT '訂單號(hào)',order_amountdecimal(10,2) DEFAULT NULL COMMENT '訂單金額',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='訂單表';
CREATE TABLEorder_detail(idint(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',order_idint(11) NOT NULL COMMENT '訂單id',goods_namevarchar(50) DEFAULT NULL COMMENT '商品名稱',goods_quantityint(11) DEFAULT NULL COMMENT '商品數(shù)量',
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='訂單詳情表';

如果我們?cè)谔幚砻總€(gè)訂單時(shí),需要向這兩張表中插入數(shù)據(jù),為了防止出現(xiàn)數(shù)據(jù)異常,可以將這兩個(gè)操作綁定在一起,只有當(dāng)兩個(gè)操作都成功時(shí),才將結(jié)果提交到數(shù)據(jù)庫(kù)中。

$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '123456');
// 開啟事務(wù)
$pdo->beginTransaction();
// 插入訂單數(shù)據(jù)
$sql = "INSERT INTOorder(order_no,order_amount) VALUES (:order_no, :order_amount)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':order_no', $order_no);
$stmt->bindParam(':order_amount', $order_amount);
$res1 = $stmt->execute();
// 插入訂單詳情數(shù)據(jù)
foreach ($order_goods as $goods) {
$sql = "INSERT INTOorder_detail(order_id,goods_name,goods_quantity) VALUES (:order_id, :goods_name, :goods_quantity)";
$stmt = $pdo->prepare($sql);
$stmt->bindParam(':order_id', $order_id);
$stmt->bindParam(':goods_name', $goods['name']);
$stmt->bindParam(':goods_quantity', $goods['quantity']);
$res2 = $stmt->execute();
}
// 判斷是否執(zhí)行成功
if ($res1 && $res2) {
// 提交事務(wù)
$pdo->commit();
echo '訂單添加成功';
} else {
// 回滾事務(wù)
$pdo->rollBack();
echo '訂單添加失敗';
}

如果在插入訂單詳情數(shù)據(jù)時(shí)發(fā)生了異常,訂單數(shù)據(jù)已經(jīng)插入成功,但是訂單詳情數(shù)據(jù)卻沒有插入成功,因此需要回滾事務(wù),保證數(shù)據(jù)一致性。

php事務(wù)保存能夠有效地保證數(shù)據(jù)的完整性,避免出現(xiàn)數(shù)據(jù)異常,是開發(fā)高質(zhì)量數(shù)據(jù)處理系統(tǒng)的必備工具。