SQL查询成功,但数据未更新

时间:2018-02-09 08:52:26

标签: php mysql sql phpmyadmin

我目前正在网上工作,现在我正在忙着重置密码功能。人们输入他们的电子邮件,sql查询检查电子邮件是否存在。如果存在,则创建随机字符串并将其插入数据库中。现在的问题是随机字符串的查询是成功的,但数据没有被更新。希望有人可以帮助我。 我正在使用的代码:

 //Import database connection in variable $conn
require("dbh.inc.php");

//Load composer's autoloader
require 'vendor/autoload.php';

//Load variable with password
require 'credentials.php';

//Escape bullshit
$email = $conn->real_escape_string($_POST['email']);

//Make all data in $email lowercase
$email = strtolower($email);

//Put SQL query in var $sql
$sql = "SELECT user_Id FROM customers WHERE user_Email='$email'";

//Execute query and put results in var $data
$data = $conn->query($sql);

//If the email exists
if ($data->num_rows > 0) {

    //Random characters
    $str = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";

    //Shuffle all data in var $str
    $str = str_shuffle($str);

    //Select only the data after 40th position
    $str = substr($str,40);

    //The url that will be send to the user
    $url = "http://example.com/users/resetPassword.php?token=$str&email=$email";

    //Execute SQL query
    $query = $conn->query("INSERT customers SET user_ResetToken='$srt' WHERE user_Email='$email'");

My database setup

1 个答案:

答案 0 :(得分:0)

您需要在插入数据时更新数据插入内容:

 $query = $conn->query("INSERT customers SET user_ResetToken='".$str."' WHERE user_Email='".$email."';");

将INSERT替换为UPDATE,就像这样。

$query = $conn->query("UPDATE customers SET user_ResetToken='".$str."' WHERE user_Email='".$email."';");

<强>更新

同样改变:

$url = "http://example.com/users/resetPassword.php?token=$str&email=$email";

$url = "http://example.com/users/resetPassword.php?token=".$str."&email=".$email;
相关问题