MySQL“UPDATE”不起作用

时间:2012-02-02 02:58:36

标签: php mysql sql-update

我在CMS上有这个查询,但它不起作用。我尝试更新会员的个人资料......

<?php
// INCLUDE FILES
include('config.cms.php');
include('php/connect_db.php');
// PREPARE STRINGS
$user_id = $_POST['user_id'];
$full_name = mysql_real_escape_string($_POST['full_name']);
$email = mysql_real_escape_string($_POST['email']);
if (isset($_POST['avatar']))
{
    $avatar = mysql_real_escape_string($_POST['avatar']);
}
else
{
    $avatar = '';
}
$avatar_type = $_POST['avatar_type'];
$slogan = mysql_real_escape_string($_POST['slogan']);
$privacy = $_POST['privacy'];
$location = mysql_real_escape_string($_POST['location']);
$bio = mysql_real_escape_string($_POST['bio']);
// QUERY THE DB
mysql_query("UPDATE users SET `full_name`='".$full_name."', `email`='".$email."', `avatar`='".$avatar."', `avatar_type`='".$avatar_type."', `user_slogan`='".$slogan."', `privacy`='".$privacy."', `location`='".$location."', `bio`='".$bio."' WHERE `id`='".$user_id."'");
// GET ERROR IF EXIST
mysql_error();
// REDIRECT AFTER COMPLETED
header('Location: profile.php?saved');
?>

是否有任何错误,因为我找不到任何东西!

2 个答案:

答案 0 :(得分:1)

mysql_error功能不会让错误显得神奇。

您必须echo mysql_error();或类似内容任何事情 - 否则,您会收到错误但会将其丢弃。

另外,请向little Bobby Tables学习 - 您尚未清理您的用户ID,头像类型和隐私字段。 全部 - 我的意思是所有 - 必须清理用户输入。我强烈建议使用PDO和参数化查询而不是mysql_real_escape_string。它们更安全,更容易理解。

答案 1 :(得分:0)

$result = mysql_query("UPDATE ...");
if (!$result) {
    echo mysql_errno() . ": " . mysql_error() . "\n";
    die();
}

另见: http://www.php.net/manual/function.mysql-query.php