ZendFrameset 数据库CURD操作

2023-12-25 03:08

本文主要是介绍ZendFrameset 数据库CURD操作,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CurdController.php

<?php/*** Created by PhpStorm.* User: Administrator* Date: 2016/4/6* Time: 15:57* 某表格CURD操作*/
require_once 'DBController.php';
require_once APPLICATION_PATH . '/models/student.php';
require_once APPLICATION_PATH . '/models/course.php';
require_once APPLICATION_PATH . '/models/sc.php';class CurdController extends DBController
{public function indexAction() {$studentModel = new student();$courseModel = new course();$scModel = new sc();$db = $courseModel->getAdapter();$db2 = $studentModel->getAdapter();$db3 = $scModel->getAdapter();//检索全部信息字段//创建数据库适配器$courses = $courseModel->fetchAll()->toArray();$this->view->courses = $courses;//CURD//增加记录/*$data = array('id' => '1','name' => 'ZF','credit' => '3');$courseModel->insert($data);*///修改记录
/*        $set = array('credit' => 2);$where = "id = 1";$courseModel->update($set, $where);*///删除记录
/*        $where = "id = 1";$courseModel->delete($where);*///根据主键查询//查询学生号位20040001学生$students1 = $studentModel->find(20040001)->toArray();$this->view->students1 = $students1;//查询多个学生$students2 = $studentModel->find(array(20040001,'20040002'))->toArray();$this->view->students2 = $students2;//取回一条记录$students3 = $studentModel->fetchRow("sex = 'M'",'age')->toArray();$this->view->students3 = $students3;//用Model与Adapter时间差别//简单原则://1.若查询部分字段,用Adapter//2.若涉及多表查询,用Adapter//3.若考虑SQL注入问题 用Adapter $adapter->query()->fetchall();//4.若增加、删除、修改、查询某张单表的全部字段(包括分页),用表模型//过滤重复值distinct//显示所有学生性别、年龄$students4 = $db2->query('SELECT DISTINCT dept FROM student')->fetchAll();$this->view->students4 = $students4;$students5 = $db2->query('SELECT COUNT(DISTINCT dept) c FROM student')->fetchAll();$this->view->students5 = $students5;//查询各系总人数//SELECT COUNT( * ) , dept FROM student GROUP BY dept//查询计算机系总人数$students6 = $db2->query("SELECT count(*) c, dept FROM student WHERE dept = '计算机系' GROUP BY dept")->fetchAll();$this->view->students6 = $students6;//查询各科总分//SELECT SUM( grade ) s, cid FROM sc GROUP BY cid//查询总分$sc1 = $db3->query("SELECT sum(grade) s FROM sc");$this->view->sc1 = $sc1;//查询选修11号课程的最高和最低分$sc2 = $db3->query("SELECT max(grade) x, min(grade) n, cid FROM sc WHERE cid=11")->fetchAll();$this->view->sc2 = $sc2;//显示各科考试不及格学生名字,科目和分数$sc3 = $db3->query("SELECT student.name sn, course.name cn, grade FROM student, course, sc WHERE grade < 60 AND sc.sid = student.id AND sc.cid = course.id")->fetchAll();$this->view->sc3 = $sc3;//计算各科不及格的学生数//不显示学生数为0的科目//SELECT name, COUNT( sid ) c FROM sc, course WHERE grade <60 AND sc.cid = course.id GROUP BY cid//显示学生数为0的科目$sc4 = $db3->query("SELECT name, count(grade) c FROM course LEFT JOIN (SELECT cid, grade FROM course, sc WHERE grade<60 AND course.id = sc.cid) tON course.id = t.cid GROUP BY name")->fetchAll();$this->view->sc4 = $sc4;}
}

FetchallController.php

<?php/*** Created by PhpStorm.* User: Administrator* Date: 2016/4/6* Time: 9:57* Zend_Table*/
require_once 'DBController.php';
require_once APPLICATION_PATH . '/models/student.php';
require_once APPLICATION_PATH . '/models/course.php';
require_once APPLICATION_PATH . '/models/sc.php';class FetchallController extends DBController
{public function indexAction(){//检索全部信息字段$studentModel = new student();//创建数据库适配器$db = $studentModel->getAdapter();$students = $studentModel->fetchAll()->toArray();$this->view->students = $students;//显示前三个男学生,按年龄排序//$students->fetchAll($where, $order, $count, $offset);// SELECT * FROM student//     WHERE sex = 'M'//     ORDER BY age DESC//     LIMIT 3 OFFSET 0$where = $db->quoteInto('1=1 AND sex = ?', M);$order = 'age DESC';$count = '3';$offset = 0;$fstudents = $studentModel->fetchAll($where, $order, $count, $offset)->toArray();$this->view->fstudents = $fstudents;//显示前三个计算机、化学系学生,按年龄排序//转码 utf-8格式 quoteInfo在截取奇数个中文utf-8格式时乱码$ph = mb_convert_encoding('化学系', 'GBK', 'UTF-8');$dept = mb_convert_encoding('计算机系', 'GBK', 'UTF-8');$where = $db->quoteInto('1=1 AND dept IN(?)', array($dept, $ph));$where = mb_convert_encoding($where, 'UTF-8', 'GBK');$order = 'age DESC';$count = '3';$offset = 0;$jhstudents = $studentModel->fetchAll($where, $order, $count, $offset)->toArray();$this->view->jhstudents = $jhstudents;//显示前三个计算机系女生,按年龄排序$where = $db->quoteInto('1=1 AND dept=?', '计算机系'). $db->quoteInto(' AND sex = ?', F);$order = 'age DESC';$count = '3';$offset = 0;$students3 = $studentModel->fetchAll($where, $order, $count, $offset)->toArray();$this->view->students3 = $students3;//检索部分字段信息//取出所有student姓名、性别$db = $studentModel->getAdapter();//使用适配器查询返回数组而非对象,无需toArray()$sql = $db->quoteInto('SELECT name, sex FROM student');$students4 = $db->query($sql)->fetchAll();$this->view->students4 = $students4;//取出所有student姓名、性别 参数$db = $studentModel->getAdapter();//使用适配器查询返回数组而非对象,无需toArray()$sql = $db->quoteInto('SELECT name, sex FROM student WHERE sex = ?', 'F');$students5 = $db->query($sql)->fetchAll();$this->view->students5 = $students5;//取出所有student姓名、性别 多参数$db = $studentModel->getAdapter();//使用适配器查询返回数组而非对象,无需toArray()//符号为"=:"   不是">:"!!! “:xxx”不可有空隙$students6 = $db->query('SELECT name, sex FROM student WHERE sex = :fm AND dept = :de', array('fm' => 'M', 'de' => 'blabla'))->fetchAll();$this->view->students6 = $students6;}
}

参考链接:http://blog.csdn.net/u010139093/article/details/24140265

这篇关于ZendFrameset 数据库CURD操作的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/534079

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

Mysql表的简单操作(基本技能)

《Mysql表的简单操作(基本技能)》在数据库中,表的操作主要包括表的创建、查看、修改、删除等,了解如何操作这些表是数据库管理和开发的基本技能,本文给大家介绍Mysql表的简单操作,感兴趣的朋友一起看... 目录3.1 创建表 3.2 查看表结构3.3 修改表3.4 实践案例:修改表在数据库中,表的操作主要

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

Python使用DrissionPage中ChromiumPage进行自动化网页操作

《Python使用DrissionPage中ChromiumPage进行自动化网页操作》DrissionPage作为一款轻量级且功能强大的浏览器自动化库,为开发者提供了丰富的功能支持,本文将使用Dri... 目录前言一、ChromiumPage基础操作1.初始化Drission 和 ChromiumPage

利用Go语言开发文件操作工具轻松处理所有文件

《利用Go语言开发文件操作工具轻松处理所有文件》在后端开发中,文件操作是一个非常常见但又容易出错的场景,本文小编要向大家介绍一个强大的Go语言文件操作工具库,它能帮你轻松处理各种文件操作场景... 目录为什么需要这个工具?核心功能详解1. 文件/目录存javascript在性检查2. 批量创建目录3. 文件

Redis中管道操作pipeline的实现

《Redis中管道操作pipeline的实现》RedisPipeline是一种优化客户端与服务器通信的技术,通过批量发送和接收命令减少网络往返次数,提高命令执行效率,本文就来介绍一下Redis中管道操... 目录什么是pipeline场景一:我要向Redis新增大批量的数据分批处理事务( MULTI/EXE