【发布时间】:2011-12-11 15:29:35
【问题描述】:
有没有办法在 Zend Framework 中使用常规的 mysql select 语句而不必使用 Zend_Db::factory
下面的代码在我的模型类中,它扩展了 Zend_Db_Table_Abstract
我目前可以这样做(可行):
$db = Zend_Db::factory('Pdo_Mysql', array(
'host' => 'localhost',
'username' => 'dbuser',
'password' => 'dbuserpass',
'dbname' => "somedbname"
));
$select = "SELECT iv.*
FROM image_variations AS iv
LEFT JOIN images AS i ON (i.image_id = iv.image_id)
LEFT JOIN product_images AS pi ON (pi.image_id = iv.image_id)
WHERE pi.pid = '$pid'
&& iv.image_type_id = '$image_type_id' ";
$stmt = $db->query($select);
$rows = $stmt->fetchAll();
return $rows;
我想这样做:
$select = "SELECT iv.*
FROM image_variations AS iv
LEFT JOIN images AS i ON (i.image_id = iv.image_id)
LEFT JOIN product_images AS pi ON (pi.image_id = iv.image_id)
WHERE pi.pid = '$pid'
&& iv.image_type_id = '$image_type_id' ";
$stmt = $this->query($select);
$rows = $stmt->fetchAll();
return $rows;
所以我不必总是在每个方法中定义 db 变量,并且到处都有 mysql 密码。有没有办法使用 $this 而不必实例化一个新的 $db Zend_DB Factory??
【问题讨论】:
-
想出了一个办法,我会在 5 小时后发布..