2013-08-12 5 views
-1

실제로 배열을 다루는 배열이 실제적으로 처리하고 있기 때문에 DB에 삽입하기 전에 따옴표/특수 문자를 이스케이프 처리하려고합니다. 약 100 - 150 값. mysql_real_escape_string() 함수를 잘못 적용하고 있습니까?

배열에서 배열에서 실행할 값을 이스케이프 처리하려고합니다.

$names = array(
"Intro", 
"James Bond", 
"M&M\'s", 
"Who\'s Fault?", 
"Started From Here, 
"Don\'t Start", 
"I\'m Still" 
); 

$i = 1; 

foreach ($names as $inner_names => $value) 
{ 
    mysql_real_escape_string($value); 
    mysql_query("UPDATE MixtapeSongs 
        SET SongName = '$value' 
        WHERE MixtapeID = 524 AND 
         TrackNumber = '$i'") 
    or die("Query could not be completed!"); 
    echo "#" . $i . " - " . $value . ".....was updated to the database!"; 
    $i++; 
} 

그것은 그것의 간단한 수정처럼 보인다하지만 난 문제가 있어요. 어떤 도움을 주시면 감사하겠습니다! 감사!

+2

을'- 당신이 $ 값이 다시 할당해야합니다. – andrewsi

+0

(1.)'mysql_' 함수 대신'mysqli' 또는'PDO' 함수를 사용해야합니다. [더 많은 정보는 avalible here] (http://php.net/manual/en/mysqlinfo.api.choosing.php); (2) 코드를 포맷하십시오. –

+0

닫는 따옴표도 빠져 있습니다. "시작한 곳"은 "시작된 곳"이어야합니다. – nickb

답변

3

이 기능은 이스케이프 문자열을 참조로하지 패스를 반환하므로이 작업을 수행 : 문자열의 이스케이프 된 버전을 반환 mysql_real_escape_string`

$value = mysql_real_escape_string($value);

관련 문제