Zend Db Seç?

2 Cevap php

Maddesine Zend_Db_Select 's herhangi bir parametre ikame var gibi görünmüyor.

Ben gibi bir şey yapamam ki son derece rahatsız edici:

$select->joinLeft('st_line_item','st_line_item.order_id = st_order.id and st_line_item.status = ?')

Yani akıcı arayüzü içinde çalışır deyimsel alternatif nedir? Ben dışarıdan katılmak maddesini hazırlamak gibi bir şey olabilir ama bu nokta değildir.

2 Cevap

Bu çalışması gerekir:

$select->joinLeft(
    'st_line_item',
    $this->_db->quoteInto(
        'st_line_item.order_id = st_order.id and st_line_item.status = ?', 
        $param
    )
)

Temelde, bir Zend_Db_ * yöntemi otomatik olarak yapmaz, bir değişken kaçmak istediğiniz zaman, sadece iş yapmak için Zend_Db :: quoteInto () kullanın.

Bu her zaman, bunu bir sanat eseri değil ama işi alır nasıl:

$param = $db->quote($param);
$select->joinLeft(
    'st_line_item',
    'st_line_item.order_id = st_order.id and st_line_item.status = ' . $param
);