我正在尝试使用 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' "); }我究竟做错了什么?
1 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
您在每次迭代中更新每条记录,因为您UPDATE
缺少WHERE
子句。
通常你会这样键入:
UPDATE ... SET code=? WHERE id=?
它将其锁定为仅匹配的行id
或任何调用您的 ID 列的地方。
注意:
SELECT *
除非您确实需要所有这些列,否则您应该避免使用。这里不需要,您只需要 ID,所以只需选择它即可。
- 1 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消