2010-04-28 66 views
1

我期待通過Zend Framework執行此聲明。據我瞭解,我可以使用Zend_Db_Select。有沒有可能使用Zend_Db_Table?Zend Framework多表查詢

三個表:班級,學生和class_students

選擇classes.name,students.student_id,students.fname,從學生,班級,class_students其中class_students.student_id = students.student_id和class_students students.lname。類標識碼= classes.class_id;

回答

2

是的,是可能的 - Zend_Db_Table提供了一個接口來執行表上的各種操作。

$table = new Model_DbTable_Classes(); // which extends Zend_Db_Table_Abstract 
$select = $table->select()->setIntegrityCheck(false); 
$select->join('class_students', 'class_students.class_id = classes.class_id') 
     ->join('students', 'student.student_id = class_students.student_id') 
     ->where('classes.class_id = ?', 1) 
     ->where('student.student_id = ?', 10); 

$result = $table->fetchAll($select); 

print_r($result->toArray()); 

因爲我不會用這種特殊情況:例如,考慮到要執行多個表選擇,並假設你有你的數據庫適配器配置正確,我們可以像下面這樣結束了但是Zend_Db_Table,當我只需要對單個表執行操作時,我傾向於使用Zend_Db_Table。至於多表選擇,我寧願去與數據庫選擇,或構建我的查詢舊式(SQL字符串),並獲取它使用我的數據庫對象。

希望它能幫助:)

M.