根据Doctrine DBAL文档,我应该能够像这样绑定一个字符串值列表:

$sql = 'SELECT * FROM mytable WHERE myfield IN (?)';

$stmt = $conn->prepare($sql);
$stmt->bindValue('myfield', array('stringa', 'stringb', 'stringc'), \Doctrine\DBAL\Connection::PARAM_STR_ARRAY);

$stmt->execute();


这将导致PHP通知并杀死我的脚本。

Notice: Array to string conversion in C:\www\eurocampings\vendor\doctrine\dbal\lib\Doctrine\DBAL\Statement.php on line 142


我做错什么了吗?

最佳答案

从Doctrine DBAL文档中:


参数列表支持仅适用于Doctrine \ DBAL \ Connection :: executeQuery()和Doctrine \ DBAL \ Connection :: executeUpdate(),不适用于预处理语句的绑定方法。


它在此链接的末尾:
http://doctrine-dbal.readthedocs.org/en/latest/reference/data-retrieval-and-manipulation.html#list-of-parameters-conversion

09-11 18:32