2013-03-19 8 views
-1

나는이 쿼리가 있습니다.쿼리가 작동하지 제대로

$queryfile = "UPDATE Glasovi 
       SET Fotografija='$content', 
       MD5Slike='$checksum' 
       WHERE Email ='[email protected]'"; 

내가 $email 변수를 에코 시도하고 올바른 값을 가지고 : 나는 WHERE 절에 직접 이메일을 쓸 때

, 그것을 작동합니다. 첫 번째 쿼리의 오류는 어디에 있습니까?

+3

할 작은 따옴표로 SQL 주입'위해서 var_dump ($의 queryfile)를'방지 그것을 살펴 도움이 될 것이다 이렇게

$queryfile = "UPDATE Glasovi SET Fotografija ='".addslashes($content)."', MD5Slike ='".addslashes($checksum)."' WHERE Email ='".addslashes($email)."'"; 

변수 도움이 필요하면 질문에 추가하십시오 :-) – michi

+0

검색어 구문에 문제가없는 것 같습니다. 모든 변수, 데이터베이스의 내용 및 질문에 게시 한 코드를 다시 확인하십시오. –

+0

나는 오늘 tryied 쿼리를 작동합니다. 뭔가 서버에서 일어난 것 같습니다. – user1455966

답변

1

당신이 PHP에서 변수를 확인 var_dump($email)

사용해야합니다 귀하의 요청이, 괜찮 - 편집 -

요청이 안전하지 않는 것 , 당신은 PDO 문을 사용한다

에 SQL 인젝션으로부터 보호하십시오.

+0

"을 사용하면 $ email이라는 문자열을 보냅니다. 이것은 사실이 아닙니다. PHP 5.3.10에서 방금 해봤습니다. 문서에도이 내용이 나와 있지 않습니다. –

+0

좋아, 내가 테스트하고 귀하의 정밀도에 대한 내 게시물을 편집, 이제 당신의 투표를 제거 할 수 있습니다, 그것은 그만한 가치가 없어 :) – Acuao

+0

내 요점은 여전히 ​​유효합니다. 문자열 보간에 대한 문장이 잘못되었습니다. –

-2

변수를 문자열과 연결하지 않았습니다.

이에 코드를 변경

:

$queryfile="UPDATE Glasovi SET Fotografija=' . $content . ', MD5Slike=' . $checksum . ' WHERE Email =' . $email . '"; 
+0

그는 콘테이너가 아닌'''을 사용하고 있기 때문에 연결하지 않아도됩니다 ... ''' – Acuao

+0

안에 변수를 넣을 수 있고 문자열을'''로하고'' ' '당신의 예에서는 ...하지만이 두 가지를 제외하고는 – Acuao

+0

오, 예, 습관의 힘이 –

1

조회에 올바른 보인다. 내가 볼 수있는 유일한 문제는 다른 변수 중 하나에 작은 따옴표가 포함되어있어 오류가 발생할 수 있습니다.

addslashes가에있는 작은 따옴표를 이스케이프 사용하려고하여도,

+0

+1 쿼리의 보안 문제가 분명합니다.'$ content' 변수에서 가능한 문제를 생각하지 않았습니다. –

관련 문제