2011-09-08 4 views
0

나는 웹 사이트를위한 PHP 스크립트를 개발하고 있었고, 난이 오류로 실행SQL 구문 오류

"당신은 당신의 SQL 구문에 오류가있다; 사용할 수있는 권리 구문에 대한 MySQL 서버 버전에 해당하는 설명서를 확인을 근처는 '=' 'WHERE 이메일 ='[email protected] ''라인에서 1

나는 가능한 거의 모든 변경했습니다하지만, 난 여전히 질수 내가 사용이

을 heres 대구 얻을 :

$query = "SELECT * FROM users WHERE email='$email'"; 
$result = mysql_query($query) or die(mysql_error()); 
$num=mysql_num_rows($result); 
if(num == 0){} 

당신은 제가 감사 할 것입니다이 문제를 해결하는 데 도움으로 너무 친절 될 경우

+0

$ result = mysql_query ("사용자가 이메일을 어디에서 선택 하시겠습니까? email = '$ email'") 또는 죽을 것 (....); – Eray

+0

당신의 싱글/더블 따옴표는 약간 이상해 보입니다. 당신은 장소가 아닌 "아무도"라는 단어 바로 앞에 작은 따옴표가 있습니다. – kinakuta

+0

온 전성 체크 : "사용자"테이블에 "이메일"이라는 컬럼이 있습니까? 그렇다면 테이블 엔티티에 키보드의 숫자 1 왼쪽에있는 백틱을 넣으십시오. "SELECT \'email \'FROM \'users \'WHERE \'email \ '='$ email '" – Joe

답변

0

이 같은 쿼리 문자열 합치보십시오 :
(string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";
을 그리고 당신은 MySQL 서버의 시도 복사에 대한 phpMyAdmin에에 액세스 할 수있는 경우 및 SQL 탭 위의 문자열로 붙여 다른 아무것도
echo (string) $query = "SELECT email FROM users WHERE email = '" . $email . "'";

2

당신은 그 $ 이메일 변수 이스케이프해야합니다 발생하는 경우 참조 :

$email = mysql_real_escape_string($email); 

$query = sprintf("SELECT * FROM users WHERE email= '%s'", $email); 
    $result = mysql_query($query) or die(mysql_error()); 
    $num=mysql_num_rows($result); 
if(num == 0){} 

예방 sql injection