我有以下代码:
$userpass = $row->userpass;
$gesamtpass = $pass.$chili;
$pwdata = mysql_query("SELECT MD5('".$gesamtpass."') AS newpass");
$pwk = mysql_fetch_object($pwdata);
$pwkey = $pwk->newpass;
$_POST["email"] = $email;
$_POST["fbuid"] = $fbuid;
if ($userpass == $pwkey){
$result_update = mysql_query("UPDATE member SET (fbuid = '".mysql_real_escape_string($_POST["fbuid"])."') WHERE email = '".mysql_real_escape_string($_POST['email'])."'") or die("not possible");}
我没有得到这个代码工作更新我的数据
这段代码以一种更整齐的方式完成了您想要做的事情。当出现问题时,它还输出一些有用的错误消息。显然,您不应该在生产中直接将这些输出给用户,但它将帮助您在开发时调试问题。
// Is this already an MD5 hash?
$userpass = $row->userpass;
// MUCH simpler way to do MD5
$pwkey = md5($pass.$chili);
if ($userpass == $pwkey) { // Compare the passwords
// If they match, do the query
$query = "UPDATE member
SET fbuid = '".mysql_real_escape_string($fbuid)."'
WHERE email = '".mysql_real_escape_string($email)."'";
mysql_query($query) or die("MySQL Query Error: ".mysql_error());
} else {
// They don't match, lets look at the data and find out why
die("They don't match! $userpass != $pwkey");
}
错误信息是什么?
1)您可以直接在php中生成MD5哈希值(MD5 in php),这会达到更好的性能。
2)如果$userpass == $pwkey为真,您是否检查过(通过简单的echo) ?
3)尝试删除or die("not possible");
部分,获取SQL错误(如果有)
4)在我看来,你不明白如何使用$_POST[]变量,因为你给它们赋值!
$userpass = $row->userpass;
$gesamtpass = $pass.$chili;
$pwdata = mysql_query("SELECT MD5('".$gesamtpass."') AS newpass");
$pwk = mysql_fetch_object($pwdata);
$pwkey = $pwk->newpass;
$_POST["email"] = $email;
$_POST["fbuid"] = $fbuid;
if ($userpass == $pwkey)
{
$result_update = mysql_query("UPDATE member SET fbuid = '".mysql_real_escape_string($_POST["fbuid"])."' WHERE email = '".mysql_real_escape_string($_POST['email'])."'") or die("not possible");
}
不使用大括号()来更新