[英]Missing insert() method on Doctrine DBAL Query Builder
我觉得我有一个时刻,我在这里缺少一些小东西; 我一直在使用QueryBuilder
DBAL 2.2.x / 2.3.x上的QueryBuilder
组件上的insert()
方法时遇到问题。
我做了一些调查,这是来自DBAL Documantation的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个维护者的大型项目,我更有可能在这里找到我的解释嫌疑,而不是在许多版本上如此根本的搞砸,但我不能为我的生活找出我所缺少的东西。 请帮我看看显而易见的。
这取决于您的版本。 自v2.5.0-BETA3以来已添加插入。
Viz https://github.com/doctrine/dbal/blob/master/lib/Doctrine/DBAL/Query/QueryBuilder.php#L563并提交
您可以决定更新软件包版本或检查此替代解决方案
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.