繁体   English   中英

缺少Doctrine DBAL查询生成器上的insert()方法

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM