我觉得我有一段时间在这里遗漏了一些小东西;我在 Dotrine DBAL 2.2.x / 2.3.xinsert()
上使用组件上的方法时遇到问题。QueryBuilder
我做了一些调查,这是来自 DBAL 文档的QueryBuilder 页面的片段
\Doctrine\DBAL\Query\QueryBuilder 支持构建 SELECT、INSERT、UPDATE 和 DELETE 查询。您正在构建哪种查询取决于您使用的方法。
它继续解释代码示例,这样我就可以简单地做:
$builder = $connection->createQueryBuilder();
$result = $builder
->insert('table_name')
// ...
在插入模式下使用查询生成器。除非我这样做了,否则我会从 PHP 那里收到投诉:
致命错误:调用未定义的方法 Doctrine\DBAL\Query\QueryBuilder::insert()
进一步检查QueryBuilder.php 源代码
我没有看到对任何方法的引用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 名维护人员的大型项目,我更有可能在这里发现我的解释可疑,而不是在众多版本中如此基本的东西上搞砸了,但我终其一生都无法弄清楚我错过了什么。请帮我看看显而易见的。