【发布时间】:2013-04-23 23:28:56
【问题描述】:
如何为查询创建事务?对于每个新帐户,我都会在数据库中创建 210 条新记录。我需要事务,因为 210 个查询需要时间,我使用 mysql_insert_id() 来获取最后插入的 id。这里是代码:
$sql = "INSERT INTO bla bla....";
$result = mysql_query($sql);
$lastid = mysql_insert_id();
if($result)
{
for($i=0; $i<=6; $i++)
{
for($j=1; $j<=30; $j++)
{
$query_day = date('Y-m-d', strtotime('+'.$i.' days 1 hours'));
$sql_insert = "INSERT INTO `e-heal`.`scr` (`sc_id`, `d_id`, `hour_id`, `date`, `a`) VALUES (NULL, '$lastid', '$j', '$query_day', '0');";
mysql_query($sql_insert);
}
}
}
【问题讨论】:
-
“我需要交易,因为” --- 它没有解释为什么你需要交易。没有它们你也可以做你想做的事
-
如果2个或更多用户同时点击注册按钮???一个用户需要 3-4 秒将记录添加到数据库中..
-
"如果两个或更多用户同时点击注册按钮" -- 是这样吗? “一个用户需要 3-4 秒将记录添加到数据库中”——所以呢?事务不会提高性能
-
@MoonFox:
mysql_insert_id()与事务无关,并且总是返回正确的最新自动执行值(即使有 1 亿用户同时按下按钮) -
@MoonFox:真的。这就是为什么提出原始问题总是一个好主意,因为您的解决方案可能基于错误的假设
标签: php mysql for-loop transactions