【问题标题】:Zend Framework Multiple Table QueryZend Framework 多表查询
【发布时间】:2010-04-28 22:00:12
【问题描述】:

我希望通过 Zend Framework 执行此语句。据我了解,我可以使用 Zend_Db_Select。 Zend_Db_Table 可以用吗?

三个表:classes、students和class_students

从学生、班级、班级学生中选择 classes.name、students.student_id、students.fname、students.lname where class_students.student_id=students.student_id AND class_students.class_id=classes.class_id;

【问题讨论】:

    标签: php mysql zend-framework


    【解决方案1】:

    是的,是可能的——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。至于多个表选择,我宁愿使用 db select,或者构建我的老式查询(SQL 字符串),并使用我的 db 对象获取它。

    希望对你有帮助:)

    M.

    【讨论】:

      猜你喜欢
      • 2013-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多