Doctrine2与Symfony:
$this->get('database_connection')->executeUpdate("DELETE FROM articles
WHERE article_id = :article_id
LIMIT :quantity",
array(
'article_id' => 1,
'quantity' => 2
));我知道错误:
执行‘从article_id =?限制的文章中删除’时发生异常。使用params 1,2: SQLSTATE42000: 语法错误或访问冲突: 1064您的SQL语法出现了错误;请检查与您的MySQL服务器版本对应的手册,以便在第3行使用接近“2”的正确语法。
如何将参数传递给限制子句?
我不喜欢使用bindValue函数,而是使用executeUpdate函数。
发布于 2014-06-16 03:10:38
问题是,executeUpdate与setParameter 不同,不会自动推断您要设置为值的类型,并将所有参数作为字符串进行威胁。因此,您应该显式地将params设置为整数。
$this->get('database_connection')->executeUpdate("DELETE FROM articles
WHERE article_id = :article_id
LIMIT :quantity",
array(
'article_id' => 1,
'quantity' => 2)
array(
\PDO::PARAM_INT,
\PDO::PARAM_INT
)
); 发布于 2014-06-11 22:45:51
您仍然可以使用以下语法执行update,这将在文章中插入第一个值,然后将第二个值插入限制。没有测试,但应该有效
$this->get('database_connection')->executeUpdate("DELETE FROM articles
WHERE article_id = ?
LIMIT ?,
array(1,2)
);https://stackoverflow.com/questions/24173688
复制相似问题