标签: zend-db-table

Zend Framework:如何取消设置Zend_Db_Table_Rowset对象中的数据行

我想迭代存储在Zend_Db_Table_Rowset对象中的数据行,然后删除/取消设置某些行,如果它们不符合某些条件.

我可以使用toArray()来获取对象中的数据行,然后很容易取消我不需要的行.但由于我想保留我的对象以供进一步使用,我不想这样做.

当然,一种解决方案是调整我的查询以便仅检索我需要的内容,但在这种情况下这是不可能的.至少我不知道怎么做.

我尝试了以下哪些不起作用:

foreach ($rowset as $key => $row)
{
    if (!$condition == satisfied)
    {
        unset($rowset[$key]);
    }
}
Run Code Online (Sandbox Code Playgroud)

当然它不起作用,因为没有$ rowset [$ key] ...数据存储在子数组[_data:protected]中但未设置$ rowset [_data:protected] [$ key]没有工作要么.

也许我对行集对象(或一般对象的表示)的概念还不够成熟,无法理解我在做什么.任何澄清和提示都将受到欢迎!

[编辑] $ row-> delete不是一个选项,我不想删除数据库中的行!我不想先创建一个数组,如果我想,我只想做$ rowset-> toArray()[/ EDIT]

解决方案:我最终做了我认为我也无法做到的事情,这意味着我将所有内容集成到初始查询中.

php arrays zend-framework zend-db-table

4
推荐指数
1
解决办法
4874
查看次数

数组到Zend_Db_Table_Row zend框架

有没有一种从数组自动转换为Zend_Db_Table_Row或Zend_Db_Table_Rowset的方法?

从Zend_Db_Table_Row形式你可以使用toArray()获取数组,但我想知道是否存在与之相反的东西?

到目前为止,我一直在实现一个函数填充($ data),它接受了数组并设置了Zend_Db_Table_Row的属性.

当然,数组键与Zend_Db_Table_Row属性相同.

感谢名单!

database arrays zend-framework zend-db-table

4
推荐指数
1
解决办法
1120
查看次数

Zend Framework:如何通过指定列的值查找表行?

我正在实现我的模型,就像快速入门指南一样.

在我的模型中,我试图实现一个findByToken()方法.当前find()方法接受一个$id参数,但我想通过不同列的值来查找.

//excerpt from the quickstart guide
public function find($id, Default_Model_Guestbook $guestbook)
{
    $result = $this->getDbTable()->find($id);
    if (0 == count($result)) {
        return;
    }
    $row = $result->current();
    $guestbook->setId($row->id)
              ->setEmail($row->email)
              ->setComment($row->comment)
              ->setCreated($row->created);
}
Run Code Online (Sandbox Code Playgroud)

我尝试过这样的事情,但我觉得它不起作用:

$db = $this->getDbTable();
$where = $db->getAdapter()->quoteInto('token = ?', $token);
$result = $db->find($where);
Run Code Online (Sandbox Code Playgroud)

通过指定列的值查找行的正确方法是什么?

zend-framework zend-db-table zend-db

4
推荐指数
1
解决办法
2万
查看次数

使用Zend框架时从多个表中获取数据?

是否有使用Zend从多个数据库表中获取数据的最佳实践?我想知道而不是最终想要重构我在不久的将来编写的代码.我正在阅读Zend文档,它说:

"您无法指定JOINed表中的列以在行/行集中返回.这样做会触发PHP错误.这样做是为了确保保留Zend_Db_Table的完整性.即Zend_Db_Table_Row应仅引用从其派生的列父表."

我假设我因此需要使用多个模型 - 这是正确的吗?例如,如果我想要获取特定用户ID的所有订单,其中日期介于两个日期之间,我该怎么做?

我知道可以从一个控制器访问两个不同的模型,然后在动作中结合它们各自的数据但我不会感到高兴这样做,因为我一直在阅读生存的deepend.com并告诉我我不应该这样做 ......

在哪里,为什么以及如何?:)

谢谢!

php zend-framework zend-db-table

4
推荐指数
1
解决办法
3107
查看次数

为什么我收到此严格标准消息?

我通过扩展Zend_Db_Table_Absract如下(简化示例)创建了Zend Framework模型:

class Foos extends Zend_Db_Table_Abstract
{
    protected $_schema = 'Foo';
    protected $_name = 'Foos';
    protected $_primary = 'id';
    protected $_sequence = true;

    public function insert($data) {
        $db = $this->getAdapter();
        $record = array('field1' => $data['field1'],
                        'field2' => $data['field2'],
                        ...
                );
        return parent::insert($record);
    }
}
Run Code Online (Sandbox Code Playgroud)

以上正确插入记录.问题是,我一直收到以下通知:

Strict Standards: Declaration of Foos::insert() should be compatible with that of Zend_Db_Table_Abstract::insert() in /x/x/x/Foo.php on line XX
Run Code Online (Sandbox Code Playgroud)

据我多次阅读文档和API,我所知道的方式是正确的.我知道我可以关闭,E_STRICT但我更想知道为什么我收到上述通知.有任何想法吗?(PHP 5.3,Zend Framework 1.10)

php zend-framework zend-db-table

4
推荐指数
1
解决办法
4425
查看次数

如何在Zend Framework Query中查找两个日期之间的所有日期

我需要找到两个日期之间的所有日期; 这是开始日期和结束日期.这是我的查询,但它没有做我需要它做的事情.

在我的表中,我有列名date_created,格式如下2011-06-09 06:41:10.我想删除这部分,06:41:10所以我申请

DATE(date_created)
Run Code Online (Sandbox Code Playgroud)

之后,因为我的日期选择器采用这种格式,02/07/2012我改变了格式DATE_FORMAT().

$start_date and $end_date 是我的变量来比较和格式 02/07/2012

$select = $DB->select()
->from('sms', array(
    'sms_id',
    'sms_body',
    'sms_sender',
    'sms_recipient',
    'date_created',
    'sms_type'))
->where('phone_service_id = ?', $phone_service_id)
->where("DATE_FORMAT(DATE(date_created), '%m/%d/%Y') >= ?",  $start_date)
->where("DATE_FORMAT(DATE(date_created), '%m/%d/%Y') <= ?",  $end_date)
->order("".$option_call_log." ".$option_call_log_asc_desc);
Run Code Online (Sandbox Code Playgroud)

我在查询中缺少什么?为什么不比较$ start_date和$ end_date?
忘了$option_call_log$option_call_log_asc_desc.

zend-framework zend-db-table zend-db

4
推荐指数
1
解决办法
9418
查看次数

使用Zend_Db时pdo_mysql vs mysqli

如果我使用Zend_Db类来从后端数据库中抽象我的查询,那么我使用哪个mysql驱动程序,pdo_mysql与mysqli有什么区别?我对pdo_mysql的理解是它也提供抽象,所以我假设如果我使用Zend_Db,那么我不会利用额外的功能作为mysqli的一部分.但是,从性能的角度来看,一个比另一个更快吗?

php mysqli pdo zend-db-table zend-db

3
推荐指数
1
解决办法
3426
查看次数

如何测试表是否在Zend Framework中更新?

当用户打开表单来修改记录时,他只需单击"更新"按钮,而不是更改信息.这导致update()函数返回0.但是,我认为这种情况是一个有效的更新任务.我将如何测试它,以便分配成功消息?

当SQL查询失败或0时,update()是否返回-1?

方法:Zend_Db_Table_Abstract :: update()

有任何想法吗?

谢谢

zend-framework zend-db-table

3
推荐指数
1
解决办法
1868
查看次数

何时使用哪个Zend_Db类?Zend_Db_Select与Zend_Db_Table_Abstract

认为可以使用Zend_Db_Select或Zend_Db_Table_Abstract编写选择查询,但我不明白何时使用两者中的哪一个.

一个比另一个更优化的东西?与其中一个连接"更容易"吗?

谢谢!

zend-framework zend-db-table zend-db zend-db-select

3
推荐指数
1
解决办法
1158
查看次数

如何在zend框架中仅从模型中选择一个特定字段

如何从模型中的表中仅选择一个字段.例如:table1(field1, field2 , ..)select only field 1

zend-db-table

3
推荐指数
1
解决办法
5862
查看次数