prepare()
不会在PDO语句中转义任何quotes(')
吗?出于某种原因,当我这样做时:
$sql = "INSERT INTO sessions (id, name) VALUES (1,'O'brian')";
$query = $this->connection->prepare($sql);
$query->execute();
我收到此错误:
Could not insert record SQLSTATE[42000]: [Microsoft][SQL Server Native Client 10.0][SQL Server]Incorrect syntax near 'brian'.
如果我正在使用prepare()
,那该怎么办?
答案 0 :(得分:3)
由于您没有在execute方法中传递值,因此不会自动为您转义。以下内容将为您转义:
$sql = "INSERT INTO sessions (id, name) VALUES (1, ?)";
$query = $this->connection->prepare($sql);
$query->execute(array("O'brian"));
答案 1 :(得分:3)
不准备()转义任何引号(') 在PDO声明中?
没有。事实上,PDO根本没有逃避。整点是使用绑定参数,因此,不需要转义任何字符。