2012-01-05 7 views
0

이 쿼리에 문제가 있습니까?MySQL 쿼리 오류

$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE $orase") or die(mysql_error()); 

이 코드는

Unknown column 'Bucuresti' in 'where clause' 
+0

질문이 명확하지 않습니다 ... – diEcho

+1

SQL 주입 취약점이이 쿼리에 잘못되었습니다. –

+0

't_medici' 테이블은 어떻게 생겼습니까? –

답변

3

$orase 따옴표에 있어야합니다 반환합니다.

$query2=mysql_query("SELECT * FROM $t_medici WHERE oras LIKE '$orase'") or die(mysql_error()); 
0

작은 따옴표 안에 $orase을 넣으십시오. 필요하면 % 기호를 사용하십시오.

0

oras 필드는 문자열이 다음 $orase이 주위에 작은 따옴표를해야하는 경우 :

$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE '$orase'") or die(mysql_error()); 

어떤 해프닝이 선에 도달하고, SQL 코드 따라서이 종료 될 때 변수 $orase 문자열 Bucuresti이 포함되어 있다는 것입니다 같은 :

...WHERE `oras` LIKE Bucuresti 

하지만 당신은 또한 탈출해야는 (SQL을 방지하기 위해 전 njection) : 보조 노트에

$query2=mysql_query("SELECT * FROM {$t_medici} WHERE `oras` LIKE '".mysql_real_escape_string($orase)."'") or die(mysql_error()); 

:

$query2=mysql_query("SELECT * FROM $t_medici WHERE `oras` LIKE '".mysql_real_escape_string($orase)."'") or die(mysql_error()); 

이 또한 내가 여기에 이중 인용 된 문자열, 즉 {$ t_medici}에 다른 변수 주위에 괄호를 넣어 것 , 만약 당신이 LIKE과 같은 문자열을 사용하고 있다면, 반환되는 모든 행은 정확히 Bucuresti (또는 $ orase가 보유하고있는 것)이되어야합니다. 공백을 포함하여 그 앞이나 뒤에는 아무 것도 없습니다. 이 경우에는 LIKE을 전혀 사용하지 않아도됩니다.

"SELECT * FROM {$t_medici} WHERE `oras` ='".mysql_real_escape_string($orase)."'" 

을하지만 당신은 어떻게 든 (예 : "부쿠레슈티의"oras 분야에서 (어떤 $ orase 보유 나) 어떤 Bucuresti을 가지고 행을 일치시킬 경우, "부쿠레슈티", "당신은뿐만 아니라과 같이 =를 사용할 수 있습니다 kdsbks kksd saBucurestie ", 등) 당신은과 같이 %을 사용해야합니다

"SELECT * FROM {$t_medici} WHERE `oras` LIKE '%".mysql_real_escape_string($orase)."%'" 

$oraseBucuresti을 보유하는 경우 %Bucuresti%

0

인터넷에서 쿼리를 복사하여 편집 할 때 매우 익숙한 오류가 발생합니다. 위에 인용 된 것과 같이 작은 따옴표.