2012-01-11 6 views
-2
$sql = "SELECT email FROM family WHERE family = '$family'"; 
       $result = mysql_query($sqll)or die(mysql_error()); 

mysql 쿼리에 PHP 변수를 가져 오는 올바른 방법입니까?mysql에서 PHP 변수

+2

'$ family = "'OR (DROP DATABASE foo) OR" " ' – gahooa

+0

http://stackoverflow.com/questions/60174/best-way-to-stop-stop-overview.asp를보고 난 후 투표/상태에 대한 제비 뽑기에 대해 생각했습니다. sql-injection-in-php도 앞 페이지에 있습니다. – atxdba

답변

1

그럴 수 있습니다. 그러나 SQL injection에 취약합니다.

이는 안전 :

$sql = sprintf("SELECT email FROM family WHERE family = '%s'", 
       mysql_real_escape_string($family)); 
$result = mysql_query($sql); 
-2

'$family' 같이 사용하는 내 지식 최선의 방법에서 여기

+0

예 ... 있습니다 ('$ family'는 문자열이라고 가정합니다) – Mischa

+1

... 죽음의 소원이라고 가정합니다. – gahooa

-1

작은 따옴표가 필요 없습니다 : $ 제품군은 문자열

$sql = "SELECT email FROM family WHERE family = ".$family; 
하지

경우

문자열 비교가있는 경우

,
$sql = "SELECT email FROM family WHERE family = '".$family."'"; 
+0

두 경우 모두 위생적 투입물을 강조하면서 심각하게 위험합니다. 정말로 개발자가 그것에 대해 걱정할 필요는 없지만 그냥 넣으면됩니까? 그것의 장소에 있고 바운드 매개 변수 또는 PDO를 대신 사용하십시오. – atxdba

+0

그는 이미 그가하고있는 것과 어떻게 다른가요? – Mischa

+0

SQL 삽입 !! – gahooa

0

코드는 defined.it가 $result = mysql_query($sql)을해야합니다

$sqll이 아닌 형식 오류가 있습니다.

나는 이것이 당신이 ... 당신은 내가 것 PHP/MySQL을로 시작하는 경우

1

(질문은 당신이 추적을 couldnt 오류를 얻었 기 때문에 아마 인 너무 모호하기 때문에) 찾고있는 이유라고 생각 PDO 또는 MySQLi 확장명을 확인하는 것이 좋습니다. 더 스마트 한 데이터베이스 쿼리를 사용하고 유지 관리하기가 쉽기 때문입니다.