2010-05-18 12 views
1

PHP 버전 5.1.6을 사용 중이고 쿼리 문자열을 $_GET 배열에서 이스케이프 처리하려고합니다. 그러나 내 스크립트는 회피 후 NULL을 반환합니다.PHP mysql_real_escape_string() NULL을 반환 중

mysql_escape_string()이 제대로 작동하지만 더 이상 사용되지 않으므로 사용하고 싶지 않습니다.

phpinfo() 이상을 확인한 결과, MySQL의 lib는 모두 정상적으로로드되었습니다. 전에 이런 종류의 일을 경험 한 사람이 있습니까?

$term = $_GET['q']; 

var_dump($term); // string(7) "richard" 
echo "<br />"; 

$sterm = mysql_real_escape_string($term, $db); 

var_dump($sterm); // NULL 

나는이 기능이 작동하지 않는 이유를 상상할 수 없습니다.

답변

11

MySQL 연결을 실행 하시겠습니까? 즉, requirement for mysql_real_escape_string()이 작동하는 것입니다

: MySQL의 연결은 다른 수준 E_WARNING의 오류가 생성됩니다 mysql_real_escape_string()을 사용하기 전에 필요하며, FALSE이 반환됩니다. $link_identifier이 정의되어 있지 않으면 마지막 MySQL 연결이 사용됩니다.

+1

'var_dump()'는'NULL'보다는'FALSE'를 리턴하지 않을까요? 나는 또한 동일한 var'$ db'에서 실행중인 MySQL 쿼리를 사용하고 있습니다. –

+1

이 프로젝트의 MySQL 클래스에 버그가 있습니다! 쿼리를 실행할 때만 연결되므로 연결을 강제로하고 함수에 전달해야했습니다. –

+2

@DavidYell : 아직도 이상한 "NULL"값을 발견했습니다 ... –

관련 문제