PHP框架中Symfony对数据库的操作
最近在研究Symfony这个框架,这里简单记录一下操作数据库的增删改查。
增
第一种方式
//获取实体管理器
$entityManager = $this->getDoctrine()->getManager();
//实例化自己的实体类
$collection=new News();
$collection->setTitle("shaishaishiashi");
//标记准备持久化实体数据
$entityManager->persist($collection);
//写入到数据库中
$entityManager->flush();$data = array("code" => 200,"message" => "数据返回成功"
);
return new JsonResponse($data);
第二种方式
//sql语句添加
$entityManager = $this->getDoctrine()->getManager();
$conn = $entityManager->getConnection();
$query = $conn->prepare("INSERT INTO news (title) VALUES ('哈哈哈')");
$query->execute();$data = array("code" => 200,"message" => "数据返回成功"
);
return new JsonResponse($data);
如何判断数据是否插入成功,这里我给出两种方案,第一种是,如果插入成功,那么对应的id肯定不为空,可以根据id来判断,或者根据id看是否能在数据库中查询到对应的数据来判断。
删
第一种方式
$entityManager = $this->getDoctrine()->getManager();
//查找对应的实体类
$repository = $entityManager -> getRepository(News::class);
$products = $repository->find(1);//根据条件进行删除
$entityManager->remove($products);
$entityManager -> flush();$data = array("code" => 200,"message" => "删除成功"
);
return new JsonResponse($data);
第二种方式
//sql语句删除
$entityManager = $this->getDoctrine()->getManager();
$conn = $entityManager->getConnection();
$query = $conn->prepare("delete from news where id=6");
$query->execute();$data = array("code" => 200,"message" => "删除成功"
);
return new JsonResponse($data);
改
第一种方式
$entityManager = $this->getDoctrine()->getManager();
//根据id查找对应的实体类
$product = $entityManager->getRepository(News::class)->find(6);if (!$product) {//有
}else{//没有
}$product->setTitle("8888");
$entityManager->flush();$data = array("code" => 200,"message" => "数据修改成功"
);
return new JsonResponse($data);
第二种方式
//更改
$entityManager = $this->getDoctrine()->getManager();
$conn = $entityManager->getConnection();
$query = $conn->prepare("UPDATE news SET title='我' WHERE id=8");
$query->execute();$data = array("code" => 200,"message" => "数据更改成功"
);
return new JsonResponse($data);
查
第一种方式
$repository = $this->getDoctrine()->getRepository(News::class);
$products = $repository->findAll();//查询全部
$products = $repository->find()//根据id 查询对应的数据
$product = $repository->findOneBy(array('name' => 'Keyboard', 'price' => 19.99));//根据条件查询
$products = $repository->findBy(array('name' => 'Keyboard'),array('price' => 'ASC'));//多个条件
第二种方式
//createQueryBuilder方式
//查询全部
$repository = $this->getDoctrine()->getRepository(News::class);
$query = $repository->createQueryBuilder('news')->getQuery();
$products = $query->getResult();
//查询单个
$repository = $this->getDoctrine()->getRepository(News::class);
$query = $repository->createQueryBuilder('news')->where('news.id =:id')->setParameter("id","6")//->orderBy('p.price', 'ASC')->getQuery();
$products = $query->getResult();
第三种方式
//sql语句进行查询
$entityManager = $this->getDoctrine()->getManager();
$conn = $entityManager->getConnection();
$query = $conn->prepare("select * from news");
$query->execute();
$result = $query->fetchAll();
补充:
接收传递数据:
$ids=$request->get("id");
返回json数据
$data = array('code' => 200,'msg' => '请求成功','data' => $result);return new JsonResponse($data, Response::HTTP_OK);
查询遇到实体类数据返回为空,给实体类实现JsonSerializable
public function jsonSerialize()
{$normalized = array('title' => $this->title,'id' => $this->id,);return $normalized;}
PHP框架中Symfony对数据库的操作相关推荐
- 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一
数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...
- Android中实现SQLite数据库CRUD操作的两种方式
Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...
- vc6.0 点击鼠标获取mysql数据库所在行_VC6.0中对MySQL数据库的操作
VC6.0中对MySQL数据库的操作 1.在mysql目录下找到名字为libmySQL.dll和libmySQL.lib 的文件拷贝到当前工程目录下,并在"工程->设置->连接& ...
- abp 使用mysql_在Abp框架中使用Mysql数据库的方法以及相关问题小记
最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后, ...
- ci php做记录删除,CI(CodeIgniter)框架中的增删改查操作_PHP教程
CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 代码如下: class ModelName extends CI_Model { funct ...
- mfc mysql delete_MFC中简单的数据库文件操作(添加,修改,查找,删除)
要求:新建一个数据库文件(微软的access),里面包括学生的信息学号(ID),姓名(Name),英语成绩(English),在Visual C++ 6.0里新建MFC项目,新建学生记录类(Stude ...
- tp3 php钩子函数,thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)...
thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...
- django系列5.1--ORM对数据库的操作
Django---ORM数据库操作(图书管理系统基本实例) 一.基本知识 MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Mo ...
- linux用c创建数据库,使用c语言实现linux数据库的操作
前言:上一篇讲解了linux下使用命令行操作数据库,这篇继续讲解怎么使用c语言实现linux数据库的操作. 使用c语言实现环境搭建:既然我们要使用c语言实现linux数据库操作,那么首先我们得先把数据 ...
最新文章
- 魔法一样隔空在屏幕写字,捏起手指就能实现!在线可玩
- NoBrokersAvailableError
- Hadoop端口介绍及各种启动命令列表
- hihoCoder 1227 2015 北京网络赛 A题
- 云适配签约比亚迪 构建统一工作平台
- gitleb 登陆方式_gitlab连接方式
- Chapter 5 Blood Type——15
- 中文分词的python实现----HMM、FMM
- vs2015环境搭建与简单程序测试
- Kafka踩坑 - Couldn't find leaders for Set
- 微信公众号系列之创建新浪云平台应用
- 源码角度了解Skywalking之Skywalking是如何进行JVM监控的
- Android 六大布局
- Python爬虫天气预报(小白入门)
- uoj#311 【UNR #2】积劳成疾
- 1.1 卡牌对象的创建———自制卡牌游戏之旅
- 咸鱼怎么翻身?非计算机专业26岁转行Java,坚持了三年终于年薪36W+
- 代金券制作小程序秒代金券_免费的微信电子代金券制作(模板、设计)工具
- 范里安《微观经济学:现代观点》第九版笔记和课后答案
- win10一直正在检查更新_IT之家安卓/iOS版 7.15 更新:手机短信快捷登录/海外用户支持...