簡體   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