2012-02-02 3 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 표 사용자 -"'응용 프로그램에. – 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와 매개 변수화 된 쿼리를 사용하는 것이 좋습니다. 그들은 더 안전하고 이해하기 쉽습니다.

관련 문제