2012-07-19 5 views
-2

오늘 내 웹 사이트에 대한 공개 프로필에서 작업했으나 문제가 있습니다.SQL 구문 오류 [PHP | MYSQL]

나는 모든 정보를 입력하지만 제출 누를 때 내가 얻을 :

당신은 당신의 SQL 구문에 오류가 있습니다; 근처에서 사용하는 올바른 구문 MySQL 서버 버전에 해당하는 설명서를 확인 'WHERE ID = 1'라인에서 3

코드 :

// contact to database 

/// connection is OK 

//Get data in local variable 
$v_name=$_POST['name']; 
$v_age=$_POST['age']; 
$v_job=$_POST['job']; 
$v_interes=$_POST['interes']; 
$v_hobbies=$_POST['hobbies']; 
$v_family=$_POST['family']; 
$v_pub_mail=$_POST['pub_mail']; 
$v_profimg=$_POST['profimg']; 
$v_about=$_POST['about']; 

// check for null values 
if ($v_name=="" /*or $v_msg==""*/) 
echo "All fields must be entered, hit back button and re-enter information"; 
else{ 
$query="insert into user(name,pub_mail,age,job,interes,hobbies,family,about) values ('$v_name','$v_age','$v_job','$v_interes','$v_hobbies','$v_family','$v_pub_mail','$v_profimg','$v_about') WHERE id='$usrid'"; 
mysql_query($query) or die(mysql_error()); 
echo "Your profile was updated ."; 
} 
+1

주사 위험에 대해 이야기하십시오. 삽입하기 전에 입력을 제거하십시오. PDO 준비 문을 사용하십시오. – Daedalus

+1

참고로 9 개의 값을 8 개의 열에 삽입하고 있습니다. 그걸 확인하고 싶을거야. – Palladium

+1

필드 중 하나가 고장났습니다. –

답변

5

INSERT에는 WHERE 절이 없습니다. 기존 레코드를 업데이트해야하는 경우 대신 UPDATE을 사용해야합니다.

+0

또는 REPLACE INTO – mdo

+0

$ query = "update user (....) WHERE id = '$ usrid'와 같은 것? –

+0

http://dev.mysql.com/doc/refman/5.1/en/update.html –

0

당신은 INSERTWHERE 절을 사용할 수 없습니다.

$query="insert into user(name,pub_mail,age,job,interes,hobbies,family,about) values ('$v_name','$v_age','$v_job','$v_interes','$v_hobbies','$v_family','$v_pub_mail','$v_profimg','$v_about'); 

나는

이 ... 당신이 대신 INSERT의 UPDATE을 할 생각 (그런데 안전하지 않은 당신 삽입/업데이트를 사용하는 것을 잊지 마세요 addslashes)

+0

어디서 사용하지 않으면 어떻게 내가 원하는 프로파일에 데이터를 삽입 할 수 있습니까? –

+0

@GerculyRobert with UPDATE – Daedalus

+0

@ GerculyRobert "원하는 프로필에"데이터를 삽입하는 것과 같은 것은 없습니다. 여러분이 생각하고있는 것은'INSERT' 문장의 일부로'$ usrid'를'id'에'INSERT '하는 것입니다. – Palladium