在PHP中使用事务示例
<?php
$dbConnection = mysqli_connect('localhost', 'root', '', 'mysql');
mysqli_autocommit($dbConnection, false);
$flag = true;
$query1 = "insert into buyer values(1234567,45345)";
$query2 = "insert into seller values(4357657,1233)";
$result = mysqli_query($dbConnection, $query1);
if (!$result)
{
$flag = false;
echo "Error details: " . mysqli_error($dbConnection) . ". ";
}
$result = mysqli_query($dbConnection, $query2);
if (!$result)
{
$flag = false;
echo "Error details: " . mysqli_error($dbConnection) . ". ";
}
if ($flag)
{
mysqli_commit($dbConnection);
echo "All queries were executed successfully";
}
else
{
mysqli_rollback($dbConnection);
echo "All queries were rolled back";
}
print "<h2>MySQL: All data of seller and buyer table</h2>";
$con = mysql_connect("localhost","root","");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("mysql", $con);
$result1 = mysql_query("SELECT * FROM buyer");
$result2 = mysql_query("SELECT * FROM seller");
echo "<table border='1'><tr>;
<th>AccountNumber</th>;
<th>Amount</th>;
</tr>";
while($rowval = mysql_fetch_array($result1))
{
echo "<tr>";
echo "<td>" . $rowval['account_id'] . "</td>";
echo "<td>" . $rowval['amount'] . "</td>";
echo "</tr>";
}
while($rowval = mysql_fetch_array($result2))
{
echo "<tr>";
echo "<td>" . $rowval['account_id'] . "</td>";
echo "<td>" . $rowval['amount'] . "</td>";
echo "</tr>";
}
echo "</table>";
mysql_close($con);
mysqli_close($dbConnection);
?>
在现实世界中,一个数据库可能同时被多个用户使用。如果是这样,那么两个用户可能会同时尝试更新一条记录。因此本文将介绍如何处理这种情况。
现在我首先解释什么是事务。”事务是一组SQL语句,您可以将它们组合到一个工作单元中。通过组合SQL语句,可以防止某些类型的数据库错误。“在开始使用MySQL处理事务之前,您应该意识到某些存储引擎不支持事务,如MyISAM存储引擎。只有InnoDB存储引擎支持事务。它完全符合酸的要求。ACID代表原子性、一致性、隔离性和耐久性。若要处理事务,在处理事务时,前面的属性应该具有使用权限。事务中的操作必须是原子的,这意味着或者所有操作都成功,或者所有操作都失败。consistency属性意味着,数据库在事务之后必须处于一致的状态。数据有效,没有半成品记录。隔离要求其他操作不能访问在尚未完成的事务期间修改的数据。在并发事务的情况下会出现隔离问题。如果没有隔离,数据可能会以不一致的状态结束。持久性是数据库系统针对任何类型的系统故障恢复提交的事务更新的能力。
日期:2020-04-18 01:09:17 来源:oir作者:oir
