了解PDO MySQL 交易:對並發腳本執行的影響
背景
背景背景
問題
這提出了兩個獨立的 PHP 是否存在的問題腳本可以同時運行事務而不會互相干擾。說明
潛在的干擾是由兩個腳本之間的事件順序造成的。請考慮以下範例:<code class="php">$conn->beginTransaction(); $stmt = $conn->prepare("SELECT * FROM employees WHERE name = ?"); $stmt->execute(['ana']); $row = $stmt->fetch(PDO::FETCH_ASSOC); $salary = $row['salary']; $salary = $salary + 1000;//increasing salary $stmt = $conn->prepare("UPDATE employees SET salary = {$salary} WHERE name = ?"); $stmt->execute(['ana']); $conn->commit();</code>
script1.php 和script2.php
script1.php 更新資料。 script2.php更新資料。
script1.php 提交。
11000: 由於較低的隔離等級或非鎖定而導致交易重疊
12000: 由於較高的隔離等級或鎖定讀取,事務單獨執行。 結論並發事務的結果取決於 MySQL 中的隔離等級和鎖定讀取的使用。理解這些概念對於防止多個腳本執行的事務之間的干擾至關重要。以上是兩個 PHP 腳本可以同時執行交易而不互相干擾嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!