当前位置:首页 > Mysql教程 > 列表

zend_db_table_abstract 中使用 zend_db_select 和join, Join Left

发布:smiling 来源: PHP粉丝网  添加日期:2014-10-15 13:29:58 浏览: 评论:0 

今天我们来讲一下关于zend_db_table_abstract中怎么使用一些查询语句,有需要的朋友可以参考一下,代码如下:

  1. -- 
  2. -- 表的结构 `charge_logs` 
  3. -- 
  4.  
  5. CREATE TABLE IF NOT EXISTS `charge_logs` ( 
  6.   `id` int(11) NOT NULL AUTO_INCREMENT, 
  7.   `charge_id` int(11) NOT NULL, 
  8.   `title` text NOT NULL, 
  9.   PRIMARY KEY (`id`) 
  10. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; 
  11.  
  12. -- 
  13. -- 转存表中的数据 `charge_logs` 
  14. -- 
  15.  
  16. INSERT INTO `charge_logs` (`id`, `charge_id`, `title`) VALUES 
  17. (1, 1, 'XXXXXXX'); 
  18.  
  19. -- 
  20. -- 表的结构 `user_charges` 
  21. -- 
  22.  
  23. CREATE TABLE IF NOT EXISTS `user_charges` ( 
  24.   `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
  25.   `user_id` int(10) NOT NULL, 
  26.   `charge_type` int(3) NOT NULL, 
  27.   `charge_subtype` int(3) NOT NULL, 
  28.   `charge_credits` int(3) NOT NULL, 
  29.   `buy_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
  30.   `valid_to` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
  31.   `next_charge_date` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
  32.   `payment` varchar(50) NOT NULL, 
  33.   PRIMARY KEY (`id`) 
  34. ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=2 ; 
  35.  
  36. -- 
  37. -- 转存表中的数据 `user_charges` 
  38. -- 
  39.  
  40. INSERT INTO `user_charges` (`id`, `user_id`, `charge_type`, `charge_subtype`, `charge_credits`, `buy_date`, `valid_to`, `next_charge_date`, `payment`) VALUES 
  41. (1, 1, 1, 1, 100, '2011-09-09 00:00:00''2011-09-16 00:00:00''0000-00-00 00:00:00''paypal'); 
  42. 在zend_db_table_abstract中使用select 查询 
  43.  
  44. $select = $this->getAdapter()->select(); 
  45. $select->from(array('uc' => 'user_charges')) 
  46.  ->joinLeft(array('cl' => 'charge_logs'), 'uc.id = cl.charge_id'array('title')) 
  47.  ->where('uc.user_id=?'$id); 
  48. return $this->getAdapter()->fetchAll($select); 
  49. 如果是用了Mapper,可以这样使用 
  50.  
  51. $select = $this->getDbTable()->getAdapter()->select(); 
  52. $select->from(array('uc' => 'user_charges')) 
  53.  ->joinLeft(array('cl' => 'charge_logs'), 'uc.id = cl.charge_id'array('title')) 
  54.  ->where('uc.user_id=?'$id); 
  55. //phpfensi.com 
  56. return $this->getDbTable()->getAdapter()->fetchAll($select); 
  57. 输出结果 
  58.  
  59. array(1) { 
  60.   [0] => array(10) { 
  61.     ["id"] => string(1) "1" 
  62.     ["user_id"] => string(1) "1" 
  63.     ["charge_type"] => string(1) "1" 
  64.     ["charge_subtype"] => string(1) "1" 
  65.     ["charge_credits"] => string(3) "100" 
  66.     ["buy_date"] => string(19) "2011-09-09 00:00:00" 
  67.     ["valid_to"] => string(19) "2011-09-16 00:00:00" 
  68.     ["next_charge_date"] => string(19) "0000-00-00 00:00:00" 
  69.     ["payment"] => string(6) "paypal" 
  70.     ["title"] => string(7) "XXXXXXX" 
  71.   } 
  72. }

Tags: zend_db_table_abstract zend_db_select

分享到: