dongtanxi5676756 2019-04-02 09:04
浏览 257
已采纳

我想使用for循环来避免重复的ID,但我无法摆脱循环

I wrote the following code to avoid duplicate ID, but I can not get out of the for loop.

print $someid;

is Keep displaying 0.

<?php
        for (; ; ) {
            $sql = "SELECT COUNT * FROM user WHERE id = :id";
            $id =  sha1(uniqid(mt_rand(), true));
            $idcheck = $connect -> prepare($sql);
            $idcheck->bindParam(':id', $id, PDO::PARAM_STR);
            $idcheck -> execute();
            $someid = $idcheck -> rowCount();
            print $someid;
            if ($someid = 0) {
                break;
            } 
        }
?>

How can I get out of the loop only if there are no duplicates?

  • 写回答

4条回答 默认 最新

  • dongxie7683 2019-04-02 09:06
    关注

    The problem is in the if condition, you are not comparing the value with 0 instead assigning to it, Do this way,

    <?php
            for (; ; ) {
                $sql = "SELECT COUNT * FROM user WHERE id = :id";
                $id =  sha1(uniqid(mt_rand(), true));
                $idcheck = $connect -> prepare($sql);
                $idcheck->bindParam(':id', $id, PDO::PARAM_STR);
                $idcheck -> execute();
                $someid = $idcheck -> rowCount();
                print $someid;
                if ($someid == 0) {
                    break;
                } 
            }
    ?>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 求螺旋焊缝的图像处理
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案
  • ¥50 yalmip+Gurobi
  • ¥20 win10修改放大文本以及缩放与布局后蓝屏无法正常进入桌面
  • ¥15 itunes恢复数据最后一步发生错误
  • ¥15 关于#windows#的问题:2024年5月15日的win11更新后资源管理器没有地址栏了顶部的地址栏和文件搜索都消失了
  • ¥100 H5网页如何调用微信扫一扫功能?