gpt4 book ai didi

php - Doctrine DBAL Query Builder 缺少 insert() 方法

转载 作者:可可西里 更新时间:2023-10-31 23:05:10 24 4
gpt4 key购买 nike

我觉得有那么一刻我错过了一些小东西;我在 Dotrine DBAL 2.2.x/2.3.x 上的 QueryBuilder 组件上使用 insert() 方法时遇到问题。

我做了一些调查,这是来自 QueryBuilder page from the DBAL Documantation 的片段

The \Doctrine\DBAL\Query\QueryBuilder supports building SELECT, INSERT, UPDATE and DELETE queries. Which sort of query you are building depends on the methods you are using.

它继续解释代码示例,这样我就可以简单地做到:

$builder = $connection->createQueryBuilder();
$result = $builder
->insert('table_name')
// ...

插入模式中使用查询生成器。除非我这样做,否则我会在这里收到来自 PHP 的投诉:

Fatal error: Call to undefined method Doctrine\DBAL\Query\QueryBuilder::insert()

进一步检查The QueryBuilder.php Source Code

我没有看到对任何方法 insert(...) 的引用,没有类可以从中继承它,也没有向 QueryBuilder 添加可以公开插入机制的特征.此外,我在顶部看到了这个:

/* The query types. */
const SELECT = 0;
const DELETE = 1;
const UPDATE = 2;

没有插入查询类型;然而,execute() 有这个有趣的方法注释:

/**
* Execute this query using the bound parameters and their types.
*
* Uses {@see Connection::executeQuery} for select statements and {@see Connection::executeUpdate}
* for insert, update and delete statements.
*
* @return mixed
*/

底线:

这是一个拥有 100 名维护者的大型项目,我更有可能在这里发现我的解释值得怀疑,而不是在许多版本中如此基础的东西上搞砸了,但我终究无法弄清楚我错过了什么. 请帮我看清楚。

最佳答案

这取决于您的版本。从 v2.5.0-BETA3 开始添加插入。

可视化 https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Query/QueryBuilder.php#L563commit

您可以决定更新包版本或 check this alternative solution

关于php - Doctrine DBAL Query Builder 缺少 insert() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25437816/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com