使用MySQL select Query查询为空

时间:2015-10-25 14:34:49

标签: php mysql

所以我是php和mysql的新手,过去几天用php和mysql创建了一个登录系统。我正在尝试创建一个功能,用户可以使用以下查询更改其密码:

$query2 =  mysql_query("SELECT password FROM adminusr WHERE id =$idToChange");
$result = mysql_query($query2) or die($idToChange.mysql_error());

1 个答案:

答案 0 :(得分:0)

使用SELECT语句,您只能选择行。要更改它们,您需要更新。考虑使用PDO,因为不推荐使用mysql_ *函数。还要尝试哈希密码,不要以纯文本格式存储。

你需要这样的东西:

$query2 =  mysql_query("UPDATE adminusr SET password = '$new_password' WHERE id = '$idToChange'");

使用PDO

//Make the connection using PDO

try {
    $conn = new PDO("mysql:host=$hostname;dbname=mysql", $username, $password);
    echo "PDO connection object created";
}
catch(PDOException $e) {
    echo $e->getMessage();
}
//Make your query
$sql = 'UPDATE adminusr SET password = :new_password WHERE id = :id';
$stmt = $conn->prepare($sql);
$stmt->execute(array(':new_password'=>$new_password, ':id'=>$idToChange));

编辑回答评论

然后您还需要在表单中包含用户名和密码字段。因此,您需要四个字段:usernameoldPasswordnewPasswordconfirmNewPassword。在更新语句之前,您需要选择具有凭据usernameoldPassword的用户。如果您只找到一个,那么您必须检查newPasswordconfirmNewPassword是否匹配。如果匹配则继续更新。否则打印一些错误信息。