2012-02-02 18 views
-4

私のCMSでこのクエリがありますが動作しません。メンバーのプロフィールを更新しようとしています...MySQLの "UPDATE"が機能しません

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

何も見つかりませんでしたのでエラーはありますか?

+7

私は 'のuser_id = POSTするのが大好きだ "123' ; DROP TABLEのユーザーを; - "'アプリケーションに。 – Borealid

+0

クエリを変数に保存し、それを 'echo'します。それでOPを更新してください。また、mysql_error()は何もしません。その関数は文字列を返します。したがって、実際にエラーを見るには 'echo mysql_error();'を使う必要があります。 –

+0

@Borealid 'User_id'はユーザが入力することはできません...非表示の入力です; –

答えて

1

mysql_error機能は魔法のように表示されません。

echo mysql_error();などがある必要があります。do何か - それ以外の場合は、エラーが発生しますが、それを破棄します。

また、little Bobby Tablesから学んでください。ユーザーID、アバタータイプ、プライバシーフィールドのサニタイズは行っていません。 ALL - 私はALLを入力してください - ユーザーの入力は消毒する必要があります。 mysql_real_escape_stringではなく、PDOとパラメータ化されたクエリを使用することを強くお勧めします。彼らはより安全で理解しやすい。

関連する問題