【问题标题】:Zend count affected rowsZend 计数受影响的行
【发布时间】:2013-06-05 13:25:47
【问题描述】:

我是使用 zend 框架的新手,而且我真的很挣扎。我也是使用 MVC 的新手。

我创建了一个简单的 CRUD 应用程序,并且正在处理更新部分。更新数据库工作正常,但我现在想添加一个工具,在向用户输出成功消息之前检查更新是否成功。

我已使用 DbTable 连接到数据库并硬编码了一些信息以供测试

    public function updateRow()
    {  
    $update = new Application_Model_DbTable_Bins();

    $data = array(
        'BIN' => 'any',
        'DIVIDE' => 'two',
        'TYPE' => 'test',
        'STYLE' => 'none',
        'PRICE' => 'unknown',
        'STORAGE' => 'none',
        'BIN_ID' => 1
    );

    $where = $update->getAdapter()->quoteInto('BIN_ID = ?', 1);

    $update->update($data, $where);

}

我的问题是:

如何检查某行是否已更新?

上面的代码是否应该在模型中,因为它正在处理数据库?

我应该计算模型或控制器中的行数吗?

我使用的是 zend 1.12 版。

我查看了快速入门指南,但似乎没有提及这一点,我查看了 other zend documentation,但很难理解。

最后我使用了 NetBeans,所以倾向于依赖弹出框来说明哪些方法可用,我知道这并不完美。

【问题讨论】:

    标签: php zend-framework model-view-controller


    【解决方案1】:

    行:

    $update->update($data, $where);
    

    返回受影响的行数。您可以使用:

    $nbRows = $update->update($data, $where);
    
    return $nbRows;
    

    返回更新影响的行数。

    在 NetBeans 中,您在弹出窗口中看到的 cmets 是 Zend Framework 本身的文档。您在弹出窗口中看到的是位于 ZF 源代码中的函数之前的注释。编码时也应该使用该类型的 cmets:

    /**
    * This function does something useful
    * @params int $param1 An integer
    * @return int The transformed integer
    **/
    public function usefulFunction($param1) {
      return $param1 + 1;
    }
    

    这样,当您使用自己的函数时,您将在 NetBeans 中看到您的 cmets。

    有了这一切,我的意思是,弹出窗口通常在 NetBeans 中使用 ZF 非常准确。只是不要忘记检查您使用的函数的返回值!

    【讨论】:

    • 只是补充一下 - 您也会在其他 IDE 中看到那些“cmets”。例如Eclipse,如果设置正确,甚至是vim 环境..
    • 感谢您的回复。但是我查看了 zend 框架的文档,并且似乎有用于检查行是否已更改的工具。我正在苦苦挣扎的是为什么我在这段代码中没有这个选项?
    • joellord 道歉,重新阅读您的回答后,我明白您的意思。谢谢你的帮助。
    猜你喜欢
    • 2014-01-14
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 2011-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多