【发布时间】:2018-07-16 15:32:51
【问题描述】:
假设我有一个名为 test.php 的 php 文件。 test.php的部分内容如下:
if($val==4)
{
$sql = "UPDATE `$tbln` SET noc='".substr($targetPath,3)."' WHERE $pri=$uploadID;";
$result=mysqli_query($db,$sql);
$sql="DELETE FROM `$tbln` WHERE noc IS NULL;";
mysqli_query($db,$sql);
}
elseif($val==5)
{
$sql = "UPDATE `$tbln` SET circular='".substr($targetPath,3)."' WHERE $pri=$uploadID;";
$result=mysqli_query($db,$sql);
$sql="DELETE FROM `$tbln` WHERE circular IS NULL;";
mysqli_query($db,$sql);
}
test.php 经常被另一个 php 文件调用。有什么办法可以锁定 if 块或 elseif 块,这样 test.php 只能在上一次调用的 if/elseif 块完成后执行?
【问题讨论】:
-
不是你的问题,但你应该参数化你的查询。
-
@user3783243 取决于这些变量中的任何一个是否来自用户输入。不必要的准备是不必要的。另外,您不能像他那样参数化表或字段名称。
-
"有没有什么办法可以锁定if块或者elseif块,使得test.php只能在上一次调用的if/elseif块完成后才能执行?"我> ...为什么?数据库行在更新时无论如何都应该锁定。
标签: php mysql concurrency