使用Microsoft SQL Server 2012(MSSQL),无法循环实体结果并保存它们。以前使用相同的代码可以正常使用MySQL。
在修改第一个实体后,服务器将立即抛出此错误:
错误:SQLSTATE [HY010]:[Microsoft] [SQL Server的ODBC驱动程序11]函数序列错误
在实体为foreach
d后,save
循环的下一次迭代发生实际错误。用于演示错误的简单代码:
$priceRows = $pricesTable
->find()
->where(['event_id' => $eventsQuery->id]);
foreach($priceRows as $query) {
$query->comment = 'new value';
$pricesTable->save($query);
}
我在cakephp 3.1.5和3.3.3上尝试了这个,结果相同。我花了几个小时调试这个没有运气。
答案 0 :(得分:0)
我过去也遇到过类似的问题。
请改为尝试:
foreach($priceRows as $query) {
$pricesTable->patchEntity($query, ['comment' => 'new value');
$pricesTable->save($query);
}
答案 1 :(得分:0)
我遇到了同样的问题,解决方案受到@Martin Hrabal评论的启发,所以试着改变:
$priceRows = $pricesTable
->find()
->where(['event_id' => $eventsQuery->id]);
到
$priceRows = $pricesTable
->find()
->where(['event_id' => $eventsQuery->id])
->toArray();