php mysql立即删除吗,php-选择然后立即删除mysql记录

我有一个运行SELECT查询的PHP脚本,然后立即删除该记录.有多台计算机正在ping相同的php文件并从同一表中获取数据.每个远程计算机都在cron作业上运行.

我的问题是,由于某些计算机在同一时间ping通,因此有时无法足够快地删除.

我的问题是,我如何从数据库中选择一条记录,并在下一台计算机将其删除之前将其删除.目前,我只是添加了一个短暂的延迟,但是效果不是很好.我尝试使用交易,但我认为它不适用于这里.

这是我的脚本的示例片段:

$query = "SELECT * FROM `queue` LIMIT 1";

$result = mysql_query($query) or die(mysql_error());

while($row = mysql_fetch_array($result)){

$email = $row['email'];

$campaign_id = $row['campaign'];

}

$queryx = "DELETE FROM `queue` WHERE `email` = '".$email."'";

$resultx = mysql_query($queryx) or die(mysql_error());

?>

非常感谢您的帮助.

解决方法:

将您的删除查询放入while循环中,以防万一您想从选择中增加限制.

$query = mysql_query("SELECT * FROM `queue` LIMIT 1") or die(mysql_error());

while($row = mysql_fetch_array($query)){

mysql_query("DELETE FROM `queue` WHERE `email` = '" . $row['email'] . "' LIMIT 1") or die(mysql_error());

}

?>

上面的代码与运行相同:

mysql_query("DELETE FROM `queue` LIMIT 1") or die(mysql_error());

请小心使用删除查询,如果电子邮件字段为空白,它将删除所有具有空白电子邮件的行.将LIMIT 1添加到您的删除查询中,以避免删除多行.

要添加随机延迟,您可以在脚本顶部添加sleep,

例如:

$seconds = mt_rand(1,10);

sleep($seconds);

?>

标签:php,mysql,sql-delete,select,transactions

来源: https://codeday.me/bug/20191010/1887155.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值