本文实例讲述了ZendFramework2连接数据库操作。分享给大家供大家参考,具体如下:
相对于zf1,来说,zf2让我们对于数据库这方面的操作我的个人感觉是对于字段起别名简单了,但是对数据库的操作虽然配置写好的就基本不需要动了,但是还是比1的配置要繁琐,
还是那句话,大家可以去看看源码。。。
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
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
rush:PHP;">
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 调用数据库
$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());
}
rush:PHP;">
paginator as $student) : ?>
escapeHtml($student->id);?>escapeHtml($student->name);?>escapeHtml($student->phone);?>escapeHtml($student->email);?>PHP的别名
escapeHtml($student->mark);?>
更多关于zend相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《PHP常见数据库操作技巧汇总》
希望本文所述对大家基于Zend Framework框架的PHP程序设计有所帮助。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。
相关推荐
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中NATIVE的支付实现流程与PC端实现扫码支付流程
![](https://www.jb51.cc/res/2024/07-30/10/32d06eca1830b39e35547ff639b7b95b.png)
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中APP的支付的配置与实现流程
![](https://www.jb51.cc/res/2024/07-30/10/3d907355e295604aef536bba5b45dd7d.png)
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户信息这个功能的开发流程。 配置 1.首先得在微信公众平台申请一下微信小程序账号并获取到小程序的AppID和AppSecret https://mp.weixin.qq.com/cgi-bin/loginpage?url=%2Fwxamp%2F
![](https://www.jb51.cc/res/2024/07-30/10/fc29e4e4eba385bc042444571f518ef6.png)
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一款开源且免费商用的后台开发框架,它基于ThinkPHP和Bootstrap两大主流技术构建的极速后台开发框架,它有着非常完善且强大的功能和便捷的开发体验,使我逐渐喜欢上了它。
![](https://www.jb51.cc/res/2024/07-30/10/e6971fb86d3ee30a4466e87826da43d8.png)
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛,就离不开通讯了,然后我就想到了长连接。这里本人用的是GatewayWorker框架。
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返回预支付订单号的接口,目前微信支付所有场景均使用这一接口。下面介绍的是其中JSAPI的支付实现流程
![](https://www.jb51.cc/res/2023/09-11/01/dd8fea799d487ba03632278a47e1bc0e.jpg)
重排数组,使得当 i 为偶数时,arr[i] >= arr[j],当 i 为奇数时,arr[i] <= arr[j],其中 j < i,使用 C++ 语言实现