首页 > 编程 > PHP > 正文

关于ZendFramework2连接数据库的操作

2020-03-22 17:22:12
字体:
来源:转载
供稿:网友
这篇文章主要介绍了ZendFramework2连接数据库操作,结合完整实例形式分析了ZendFramework2连接数据库的具体步骤、配置方法、相关操作技巧与注意事项,需要的朋友可以参考下

本文实例讲述了ZendFramework2连接数据库操作。分享给大家供大家参考,具体如下:

相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐,

还是那句话,大家可以去看看源码。。。

Module.php 里面添加

html' target='_blank'>public function getServiceConfig() return array( factories = array( Student/Model/StudentTable = function($sm) { $tableGateway = $sm- get( StudentTableGateway  $table = new StudentTable($tableGateway); return $table; StudentTableGateway = function ($sm) { $dbAdapter = $sm- get( Zend/Db/Adapter/Adapter  $resultSetPrototype = new ResultSet(); $resultSetPrototype- setArrayObjectPrototype(new Student()); return new TableGateway( cc_user , $dbAdapter, null, $resultSetPrototype);//table Name is cc_user}

student.php 这个是Model/Student.php

namespace Student/Model;class Student public $id; public $name; public $phone; public $mark; public $email; public function exchangeArray($data)//别名 $this- id = (!empty($data[ cc_u_id ])) ? $data[ cc_u_id ] : null; $this- name = (!empty($data[ cc_u_name ])) ? $data[ cc_u_name ] : null; $this- phone = (!empty($data[ cc_u_phone ])) ? $data[ cc_u_phone ] : null; $this- mark = (!empty($data[ cc_u_mark ])) ? $data[ cc_u_mark ] : null; $this- email = (!empty($data[ cc_u_email ])) ? $data[ cc_u_email ] : null;}

StudentTable.php Model/StudentTable.php

 ?phpnamespace Student/Model;use Zend/Db/ResultSet/ResultSet;use Zend/Db/TableGateway/TableGateway;use Zend/Db/Sql/Select;use Zend/Paginator/Adapter/DbSelect;use Zend/Paginator/Paginator;class StudentTable protected $tableGateway; protected $table= cc_user  public function __construct(TableGateway $tableGateway) $this- tableGateway = $tableGateway; public function fetchAll($paginated) {//分页 if($paginated) { // create a new Select object for the table album $select = new Select( cc_user  // create a new result set based on the Student entity $resultSetPrototype = new ResultSet(); $resultSetPrototype- setArrayObjectPrototype(new Student()); // create a new pagination adapter object $paginatorAdapter = new DbSelect( // our configured select object $select, // the adapter to run it against $this- tableGateway- getAdapter(), // the result set to hydrate $resultSetPrototype $paginator = new Paginator($paginatorAdapter); return $paginator; $resultSet = $this- tableGateway- select(); return $resultSet; public function getStudent($id) $id = (int) $id; $rowset = $this- tableGateway- select(array( id = $id)); $row = $rowset- current(); if (!$row) { throw new /Exception( Could not find row $id  return $row; public function deleteStudent($id) $this- tableGateway- delete(array( id = $id)); public function getLIValue(){ return $this- tableGateway- getLastInsertValue();}

Student/IndexController.php 调用数据库

public function indexAction(){ /* return new ViewModel(array( students = $this- getStudentTable()- fetchAll(), //不分页 ));*/ $page=$this- params( page //走分页 在model.config.php里面设置:/* model.config.php  defaults = array( controller = Student/Controller/Index , action = index , page = 1 , $paginator = $this- getStudentTable()- fetchAll(true); // set the current page to what has been passed in query string, or to 1 if none set $paginator- setCurrentPageNumber((int)$this- params()- fromQuery( page , $page)); // set the number of items per page to 10 $paginator- setItemCountPerPage(10); return new ViewModel(array( paginator = $paginator //模板页面调用的时候的名字 //print_r($this- getStudentTable()- fetchAll());}

在模板页面的调用

 ?php foreach ($this- paginator as $student) : ?  tr id= ?php echo $this- escapeHtml($student- ?  td ?php echo $this- escapeHtml($student- ? /td  td ?php echo $this- escapeHtml($student- name);? /td  td ?php echo $this- escapeHtml($student- phone);? /td  td ?php echo $this- escapeHtml($student- email);? /td //应用了在Student.php的别名 td ?php echo $this- escapeHtml($student- mark);? /td  td a href= # >

以上就是本文的全部内容,希望对大家的学习有所帮助,更多相关内容请关注PHP !

相关推荐:

Zend Framework中Bootstrap类的用法解析

Yii2框架实现数据库常用操作解析

关于Zend Framework如何实现将session存储在memcache中

以上就是关于ZendFramework2连接数据库的操作的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表