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