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

PDO ステートメントで prepare() が引用符 (') をエスケープしませんか?

いいえ。実際、PDO によって行われるエスケープはまったくありません。全体のポイントは、バインドされたパラメーターを使用することです。したがって、 文字をエスケープする必要はありません。

于 2011-01-04T23:51:58.957 に答える