PHP uniqid 在 while 循环的每次迭代中重复

我正在尝试使用 while 循环使用唯一标识符填充 mysql 数据库中的列,但 uniqid 一遍又一遍地重复相同的输出。


这是我的代码:


$dblink = mysqli_connect($host,$dbu,$dbp);

$dblink->set_charset("utf8");

$seldb = mysqli_select_db($dblink, $db);


  

$dblink = new mysqli($host, $dbu, $dbp, $db);


    $result = $dblink->query(" SELECT * FROM `mytable` ");



    while ($row = $result->fetch_assoc())  {

        $uniquecode = uniqid();

        $sql = mysqli_query($dblink,"UPDATE `mytable` SET `code`='$uniquecode' ");

    }

我究竟做错了什么?


ibeautiful
浏览 112回答 1
1回答

蝴蝶不菲

您在每次迭代中更新每条记录,因为您UPDATE缺少WHERE子句。通常你会这样键入:UPDATE ... SET code=? WHERE id=?它将其锁定为仅匹配的行id或任何调用您的 ID 列的地方。注意:SELECT *除非您确实需要所有这些列,否则您应该避免使用。这里不需要,您只需要 ID,所以只需选择它即可。
打开App,查看更多内容
随时随地看视频慕课网APP