Doctrine DBAL 2.13 $statement->execute() returns bool(而不是结果)
Doctrine DBAL 2.13 $statement->execute() returns bool (instead of Result)
自 Doctrine DBAL 2.13 发布以来,已添加弃用,如前所述 here。
虽然获取结果的旧方法是这样的:
$statement->execute();
while (($row = $statement->fetch()) !== false) {
}
新的方式是这样的:
$result = $statement->execute();
while (($row = $result->fetchAssociative()) !== false) {
}
我想更新我的代码以便为 doctrine/dbal 3.0 做好准备,但是 $statement->execute()
不是 return 结果集而只是一个布尔值,所以没有什么可以迭代,即便如此,发行说明状态:
DBAL 3.0 extracts all fetch-methods from the Statement API and moved
them to a new Result API that is returned from Statement::execute. We
have backported this API to 2.13
这是否意味着向后移植失败或者我遗漏了什么?
更新至 doctrine/dbal 2.13.1(2021 年 4 月发布)并使用:
$result = $statement->executeQuery();
while (($row = $result->fetchAssociative()) !== false) {
}
请注意,executeQuery() 应该用于获取结果对象,因为 execute() 现在也已弃用。 (发行说明中也没有)
自 Doctrine DBAL 2.13 发布以来,已添加弃用,如前所述 here。
虽然获取结果的旧方法是这样的:
$statement->execute();
while (($row = $statement->fetch()) !== false) {
}
新的方式是这样的:
$result = $statement->execute();
while (($row = $result->fetchAssociative()) !== false) {
}
我想更新我的代码以便为 doctrine/dbal 3.0 做好准备,但是 $statement->execute()
不是 return 结果集而只是一个布尔值,所以没有什么可以迭代,即便如此,发行说明状态:
DBAL 3.0 extracts all fetch-methods from the Statement API and moved them to a new Result API that is returned from Statement::execute. We have backported this API to 2.13
这是否意味着向后移植失败或者我遗漏了什么?
更新至 doctrine/dbal 2.13.1(2021 年 4 月发布)并使用:
$result = $statement->executeQuery();
while (($row = $result->fetchAssociative()) !== false) {
}
请注意,executeQuery() 应该用于获取结果对象,因为 execute() 现在也已弃用。 (发行说明中也没有)