2009-11-02 4 views
0

내 오류가이 MySQL의 쿼리MySQL의 오류 포스트 데이터를 삽입 할 때

$sql = "INSERT INTO `events` (`owner` , `title` , `tagline` , `location` , `street` , `citytown` , `startdate` , `enddate` , `active` ) VALUES( '{$username}' , '{$data[title]}' , '{$data['tagline']}' , '{$data['location']}' , '{$data['street']}' , '{$data['citytown']}' , '{$data['startdate']}' , '{$data['enddate']}' , '{$data['active']}' ) "; 
mysql_query($sql) or die(mysql_error()); 

에있는 곳이 내가 근처의 구문에 오류가 내 이야기 ​​잘 모릅니다 ... 그리고 내 데이터의 일부를 출력 어디에서 이 아포스트로피

: 당신은 당신이 데이터베이스에 삽입하기 전에 문자열에 작은 따옴표를 탈출 할

답변

2

(예 : 제목 = 데이브의 파티).

$data 배열의 각 요소에 mysql_real_escape_string을 사용하고 싶을 것입니다. 예를 들어

: 여담으로

$escaped_data = array(); 

foreach ($data as $key => $val) { 
    $escaped_data[$key] = mysql_real_escape_string($val); 
} 

$sql = "INSERT INTO `events` (`owner` , `title` , `tagline` , `location` , `street` , `citytown` , `startdate` , `enddate` , `active` ) VALUES( '{$username}' , '{$escaped_data[title]}' , '{$escaped_data['tagline']}' , '{$escaped_data['location']}' , '{$escaped_data['street']}' , '{$escaped_data['citytown']}' , '{$escaped_data['startdate']}' , '{$escaped_data['enddate']}' , '{$escaped_data['active']}' ) "; 
mysql_query($sql) or die(mysql_error()); 

SQL injection에 대한 PHP 문서를보십시오.

1
mysql_escape_string($data['title']); 

또는

mysql_real_escape_string($data['title'], $dbconn); 
관련 문제