我正在尝试为数据库中的所有用户生成唯一的哈希值;这是我的代码:
<?php
include("php/connect.php");
$sql = "SELECT id FROM user";
while ($id = mysqli_fetch_assoc(mysqli_query($conn, $sql))) {
$new_hash = md5(uniqid(rand(), TRUE));
$sql2 = "INSERT INTO user (hash) VALUE ('$new_hash') WHERE id = $id['id']";
mysqli_query($conn, $sql2);
}
?>
每次运行时,都会出现以下错误:
Fatal error: Maximum execution time of 30 seconds exceeded in
答案 0 :(得分:0)
关于此查询:
std::function
INSERT
不使用WHERE
子句UPDATE
,INSERT ... ON DUPLICATE KEY UPDATE
也是如此。
但是,我不知道你为什么要那样做。使用设置为AUTO_INCREMENT的列应该足够具有唯一ID。
然而,如果这是您想要做的,那么您将需要使用上面显示的方法之一。
mysqli_error($conn)
会给你一个语法错误。即:
$sql2 = "INSERT INTO user (hash) VALUE ('$new_hash') WHERE id = $id['id']";
答案 1 :(得分:0)
我认为您在这里的意思是更新hash
表的user
字段。如果你真的不关心哈希是什么,只要它们是准随机的,那么就这样做:
UPDATE user SET hash=SHA2(UUID())
如果您希望它们以加密方式随机,完全不可预测,您需要使用比UUID()
函数更好的随机数据生成器。