2011-08-06 2 views
0

폴더 안에있는 파일 목록을보고 데이터베이스에 모든 이름을 입력하여 이미지를 표시 할 때 정렬을 제어 할 수있는 쿼리가 있습니다.변수에서 기호를 무시하거나 감지하는 방법은 무엇입니까?

저는 오늘 image123('2).jpg이라는 이름의 이미지가 있습니다. 작은 따옴표로 인해 내 쿼리가 충돌을 일으켰습니다. 어떻게이 문제를 해결할 수 있습니까? 일을 간단하게하기 위해 나는 예제 시나리오 만든

나는이 다음과 같은 문자열이

$myVAR1 -- "MyName IS Leo"; 

$myVAR2 -- "MyName IS 'Tiger"; 

나는 데이터베이스

$sql = "INSERT INTO `names` (`StringID`, `StringValue`) VALUES (NULL, ' $myVAR1');"; 

$sql2 = "INSERT INTO `names` (`StringID`, `StringValue`) VALUES (NULL, ' $myVAR2');"; 

에 입력하는 SQL 쿼리를 실행하고있는 4 개 변수의 목록 그렇다면 작은 따옴표가 문자열 $myVar2 안에 있음을 어떻게 발견 할 수 있습니까? 데이터베이스에 들어가기 위해 어떻게 무시할 수 있습니까?

답변

1

데이터를 이스케이프 처리해야합니다. prepared queries with PDO을 사용하면 걱정할 필요가 없습니다.

현재 너는 SQL injection까지 열려 있습니다.

PHP에서 표준 MySQL 라이브러리를 사용한다고 가정 할 때 최소한 mysql_real_escape_string()을 사용하십시오. 따옴표는 다른 많은 것들 중에서도 처리되어 적절하게 이스케이프 처리되므로 데이터베이스에 삽입됩니다.

+0

감사 드리며 이것을 시도하고 알려 드리겠습니다. – mindmyweb

관련 문제