Php MySQL“;更新;不';行不通

Php MySQL“;更新;不';行不通,php,mysql,sql-update,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_escap

我的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');
?>

有没有什么错误,因为我什么都找不到

该函数不会使错误神奇地显示出来

您必须
echo mysql_error()
或类似于让它做任何事情-否则,您会得到错误,然后将其扔掉

此外,请从中学习-您没有对您的用户ID、化身类型或隐私字段进行消毒ALL-我的意思是ALL-必须对用户输入进行消毒。我强烈建议使用PDO和参数化查询,而不是
mysql\u real\u escape\u string
。它们既安全又容易理解

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

我想将
user_id=“123”;DROP TABLE users;-“
发布到您的应用程序中。将查询保存在变量中,然后
echo
。用这个更新OP。另外,只需
mysql\u error()
什么也不做-该函数返回一个字符串。所以您需要使用
echo mysql_error()
以实际查看错误。@Borealid
用户id
不可由用户填写。。。这是一个隐藏的输入;)@FrederickMarcoux用户可以发布他们想要的任何内容,无论输入字段是否隐藏(即使根本没有输入字段)。@Borealid我在其中添加了
mysql\u real\u escape\u string()