-3

我收到一个 PHP 错误并在 hurl.it 上返回空正文。我试图散列我数据库中现有用户的密码。

使用 user_id 作为 POST 并在新创建的列中将其更新到我的数据库

// Create connection
$con = mysqli_connect($dbPath,$dbUserName,$dbPassword,$dbSchema);

// Check connection
if (mysqli_connect_errno()) {
  $error = "DB connection error";
}

$user_id = $_POST['user_id'];  


//exisitng password
$sql = mysqli_query($con, "SELECT password FROM user_table 
                            WHERE user_id = '$user_id'");

if(!$sql) $error = "SELECT user_table error";

$i=0;
while($result = mysqli_fetch_assoc($sql)){

    $hash[$i] = $result;

    if($hash[$i]) {
        $check_hash = password_hash($hash[$i], PASSWORD_DEFAULT);

        //store into DB
        $result2 = mysqli_query($con, "INSERT INTO user_table (password_secure) VALUES   ('$check_hash')"); 
    }
    $i++;
}



if(!$result2) $error = "INSERT user_table error";
// Set returns
if (!$error) $status = "successful";
4

2 回答 2

1

您的代码中有很多问题,但主要的罪魁祸首是您INSERT在真正应该使用时使用UPDATE

UPDATE user_table SET password_secure=? WHERE user_id=?
于 2014-08-15T08:32:30.377 回答
0

$result 将是一个数组,因为你正在使用mysqli_fetch_assoc()所以你试图散列一个数组

$password = $result['password'];

if($password){
    $check_hash = password_hash($password, PASSWORD_DEFAULT);
于 2014-08-15T08:41:03.960 回答