我用随机数作为用户名,用户名是不能重复的,但是随机数也有可能重复(概率不考虑)
那么,如何让程序运行之后,发现重复了,自动重试一次呢?如果第二次再重复(或失败)的话就
让他停止运行?
function add()
{
$name = '';
for ($i=0; $i < 10; $i++) {
$name .= mt_rand(0,9);
}
//$sql = "insert into user ('name') values($name)";
$PDO->exet($sql);
if(!$res){
//重试???
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
嗯...用
递归可以吗?1、你这个情况,应该在生成随机数以后立即检查此随机会是否可用吗,如果可用才进行数据库插入工作的。
而不是让程序出错了再执行。
2、简单的使用$name .= mt_rand(0,9)来生成随机数,这个出现重复的机率会很高,尤其在你网站有一定访问量的情况下,非常非常不建议你这样子做。
1。把需要重复执行的代码提取出来做一个独立的方法,这样就能重复调用了
2。使用跳转标签
可以使用php的异常来实现,当发生错误时,主动抛出一个异常,利用
try...catch来捕获异常,当捕获后再次重试,如果还是发生异常,可以exit()或者die()设置个变量counter计数保存出错次数。 代码块加异常处理try catch. catch里:
逻辑问题啊, 先看用户名有没有重复啊, 不用先插入如果插入不进去才重试啊,