2011-01-04 2 views
0

prepare()quotes(')을 PDO 문에서 이스케이프 처리하지 않습니까? 내가 prepare()을 사용하고있는 경우 PDO 문에서 값 이스케이프

Could not insert record SQLSTATE[42000]: [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near 'brian'. 

방법이 될 수있다 :

$sql = "INSERT INTO sessions (id, name) VALUES (1,'O'brian')"; 
$query = $this->connection->prepare($sql); 
$query->execute(); 

내가이 오류 : 어떤 이유로 나는이 작업을 수행 할 때?

답변

3

execute 메소드에서 값을 전달하지 않으므로 자동으로 이스케이프 처리되지 않습니다. 다음은 당신을 위해 탈출 할 것 : 사실

$sql = "INSERT INTO sessions (id, name) VALUES (1, ?)"; 
$query = $this->connection->prepare($sql); 
$query->execute(array("O'brian")); 
+2

준비된 진술 문. 이것이 갈 길입니다. –

+0

감사합니다. – Pardoner

3

Doesn't prepare() escape any quotes(') in a PDO statement?

번호, 아니 전혀 PDO에 의해 수행되는 이스케이프 없다. 요점은 바운드 매개 변수를 사용하는 것이므로 이스케이프해야 할 문자가 없습니다.

관련 문제