Ben bir tablo sorgulamak için Zend_Db kullanıyorum. Ben tarihleri gerekir ve "doğru yolu" bu nasıl (ilk bakışta) net değil bazı WHERE
hükümler var. Zend_Db yüzden backend (vb Oracle, MySQL,) kendi tarihlerini beklediği nasıl kendimi endişe gerekmez, bir soyutlama sağlar mı? Ya da benim arka uç bunları beklediği şekilde şeyler biçimlendirmek gerekiyor.
Ben (PO_DATE bir zaman damgası alan) bir Oracle tabanlı veritabanı ile aşağıdaki çalışıyorum
$table = $this->getDbTable();
$select = $table->select()->where('1 = ?', 1);
$select->where('PO_DATE = ?', '2009-12-02');
ve ben aşağıdaki özel durum alıyorum
<b>Message:</b> 1843 ORA-01843: not a valid month SELECT "TABLE_NAME".* FROM "SYSTEM"."TABLE_NAME" WHERE (1 = 1) AND (PO_DATE = *'2009-12-02') </p>
Ben böyle bir şey yapabileceğini fark
$date = new Zend_Db_Expr(
"to_date('2009-12-02', 'YYYY-MM-DD')"
);
$select->where('PO_DATE = ?', $date);
ama bu kısmen bir SQL soyutlama katmanı kullanarak amacı yendi Oracle'ın tarih bazlı Expressions, beni bağlar.
Zend_Db'nin ile arka-uç uygulama tarih sorgular bağımsız yapmak için genel bir yolu var mı?