2014-03-28 15 views
0

다음은 MySQL 데이터베이스에서 일부 데이터를 가져 오는 데 사용한 코드이지만 오류가 발생합니다.데이터베이스에서 데이터를 가져올 수 없습니다.

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in C:\wamp\www\test\..\line28 

해당 코드 단편은 아래에 나와 있습니다. 어떤 제안?

if (($_POST["status"]) === "Builder") { 
    $sql_1= "SELECT `email_address` from `buider_basic_info` where `email_address` ='$_POST[username]'"; 
    echo $sql_1; 
} 
+2

문자열 주위에 따옴표가 있어야합니다. – mesutozer

+0

보호해야합니다. SQL 삽입 공격에 사용되는 POST 변수 ... – markdwhite

+1

문자열 붙여 넣기 대신 항상 매개 변수가있는 명령문을 사용하십시오. 이것은'username'에 대한 창의적인 가치를 얻을 때 [SQL 주입 공격] (http://xkcd.com/327/)을 요구하고 있습니다. – chrylis

답변

0

- 테이블 이름이나 열 이름에는 따옴표를 사용할 수 없습니다. 당신은 백틱을 사용할 수 있습니다.
- 쿼리가 문자열이므로 따옴표 안에 있어야합니다.
- 이메일 주소를 사용 따옴표가 문자열

이기 때문에이 시도 :

$sql_1=" SELECT `email_address` 
    from `buider_basic_info` 
    where `email_address` = '".$_POST['username']."'"; 
+0

nt workin ... 여전히 같은 오류. – user3243970

0

필드 이름 대신 작은 따옴표의

$sql_1= 
"SELECT `email_address` from `buider_basic_info` where 
`email_address`='". $_POST['username']."'"; 

사용 backtics을 시도

+0

nt workin ... 여전히 같은 오류입니다. – user3243970

+0

필드 이름에 backtics를 사용 했습니까? – Sadikhasan

+0

예. 그게 ... 여전히 똑같은 결과 – user3243970

0
$sql_1 = "SELECT email_address 
      FROM buider_basic_info 
      WHERE email_address = '".$_POST['username']."'"; 
관련 문제