首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检索火鸟插入的结果.返回Yii

如何检索火鸟插入的结果.返回Yii
EN

Stack Overflow用户
提问于 2016-09-09 12:21:17
回答 1查看 308关注 0票数 2

我试图在Yii中使用Firebird2.1(使用插件http://www.yiiframework.com/extension/yii2-firebird/),但是在执行插入(保存)命令时遇到了问题,错误消息是:

SQLSTATEHY000:一般错误:-502游标未打开

我发现Yii生成带有返回子句的insert语句,例如:

代码语言:javascript
复制
INSERT INTO CONTRACTS (contract_no) VALUES (10002) RETURNING contract_no

我猜问题是: Yii试图读取这个insert命令的结果,但是Yii插件出现了问题,它在pdoStatement->execute之后立即关闭游标。异常在yii/db/Command.php文件函数protected function queryInternal($method, $fetchMode = null)中生成,其代码如下:

代码语言:javascript
复制
 $this->pdoStatement->execute();

 if ($method === '') {
     $result = new DataReader($this);
 } else {
    if ($fetchMode === null) {
        $fetchMode = $this->fetchMode;
    }
    try {
        $result = call_user_func_array([$this->pdoStatement, $method], (array) $fetchMode);
        $this->pdoStatement->closeCursor();
    } catch (Exception $ex) {
        Yii::trace('Fetch error', 'yii\db\Command::query');
    }
}

我有以下问题:

  1. 有人用火鸟和Yii在一起,有什么经验吗?
  2. 如何解释代码: call_user_func_array([$this->pdoStatement, $method], (array) $fetchMode);

在哪里纠正呢?我想这个方法应该在Yii插件中被过度使用,目的是检查游标是否打开,如果有必要,打开游标?

EN

回答 1

Stack Overflow用户

发布于 2017-01-30 18:57:15

回答第一个问题。对于YII2,我使用"edgardmessias/yii2-firebird":"^0.7.1",扩展为Firebird 2.1.1883。我发现最好不是用ActiveDataProvider,而是用

$dataProvider =新ArrayDataProvider([

在SearchModel里。这种方式在寻找关系时并不是那么多的错误。但主要问题是区分大小写的搜索。我总是需要在搜索字段中写同样的字母,无论是大还是小。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39411482

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档