我试图为所有用户

时间:2017-08-18 00:33:05

标签: php mysql database mysqli database-design

我正在尝试为数据库中的所有用户生成唯一的哈希值;这是我的代码:

<?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

2 个答案:

答案 0 :(得分:0)

关于此查询:

std::function

INSERT不使用WHERE子句UPDATEINSERT ... ON DUPLICATE KEY UPDATE也是如此。

但是,我不知道你为什么要那样做。使用设置为AUTO_INCREMENT的列应该足够具有唯一ID。

然而,如果这是您想要做的,那么您将需要使用上面显示的方法之一。

即:

$sql2 = "INSERT INTO user (hash) VALUE ('$new_hash') WHERE id = $id['id']";

答案 1 :(得分:0)

我认为您在这里的意思是更新hash表的user字段。如果你真的不关心哈希是什么,只要它们是准随机的,那么就这样做:

UPDATE user SET hash=SHA2(UUID())

如果您希望它们以加密方式随机,完全不可预测,您需要使用比UUID()函数更好的随机数据生成器。