0

不会在 PDO 语句中prepare()转义任何内容吗?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()

4

2 回答 2

3

由于您没有在 execute 方法中传递值,因此不会自动为您转义。以下内容将为您转义:

$sql = "INSERT INTO sessions (id, name) VALUES (1, ?)";
$query = $this->connection->prepare($sql);
$query->execute(array("O'brian"));
于 2011-01-04T23:50:39.320 回答
3

prepare() 不会在 PDO 语句中转义任何引号(')吗?

不。事实上,PDO 根本没有进行转义。重点是使用绑定参数,因此 不需要转义字符。

于 2011-01-04T23:51:58.957 回答