php / mysql更新无法正常工作

时间:2013-11-23 04:57:55

标签: php mysql

我正在使用php / mysql测试密码更新过程。我在提交时没有收到任何错误,但我的值没有更新。有什么想法吗?

if (!empty($_POST['password']) && !empty($_POST['password2'])){
    $id = $_GET['id'];
    $password = md5(mysql_real_escape_string($_POST['password']));
    $sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = '$id'");
    if ($sql){
        echo $password, $id;
    }else{
        echo mysql_error();
    }
}

5 个答案:

答案 0 :(得分:1)

只是预感。尝试删除变量$id

周围的引号
if (!empty($_POST['password']) && !empty($_POST['password2'])){
    $id = $_GET['id'];
    $password = md5(mysql_real_escape_string($_POST['password']));
    $sql = mysql_query("UPDATE users SET `Password` = '$password' WHERE UserID = {$id}");
    if ($sql){
        echo $password, $id;
    }else{
        echo mysql_error();
    }
}

答案 1 :(得分:1)

您已合并$_GET$_POST。尝试将$_GET['id']更改为$_POST['id']。如果这不起作用,请尝试添加

var_dump( $_POST );
var_dump( $_GET );

代码。这可能有助于你调试。

答案 2 :(得分:0)

这似乎有效:

$id = $_REQUEST['id'];
if (!empty($_POST['password']) && !empty($_POST['password2'])){
    $password = md5(mysql_real_escape_string($_POST['password']));
    $sql = mysql_query("UPDATE users SET Password = '".$password."' WHERE UserID = '".$id."'");
    if ($sql){
        echo "Password reset.";
        echo "<meta http-equiv='refresh' content='1;index.php' />";
    }else{
        echo mysql_error();
    }
}else{
?>
<form role="form" action="[Leave blank]" method="post" name="resetpassword" id="resetpassword">

答案 3 :(得分:0)

mysql_real_escape_string返回TRUE/FALSE

就像这样使用它

if(mysql_real_escape_string($_POST['password']))
{
    $password = md5($_POST['password']);
}

它现在可以使用了!

建议:

走一条路。 GET或POST

答案 4 :(得分:-2)

您尝试更新的ID是否正确?