最近在研究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对数据库的操作相关推荐

  1. 数据库应用程序开发基础篇—— .NET中SQL Server数据库的操作C#篇之一

    数据库应用程序开发基础篇-- .NET中SQL Server数据库的操作C#篇之一 写在前面:前面介绍了数据库系统的基本概念,SQl语句基本使用方法,接下来通过学习具体语言和具体数据库结合的应用开发来 ...

  2. Android中实现SQLite数据库CRUD操作的两种方式

    Android中实现SQLite数据库CRUD操作的两种方式 SQLite是一款轻量级的关系型数据库,具有运行速度.占用资源少的特点.通常只需要几百KB的内存就够了,因此特别适合在移动设备上使用.SQ ...

  3. vc6.0 点击鼠标获取mysql数据库所在行_VC6.0中对MySQL数据库的操作

    VC6.0中对MySQL数据库的操作 1.在mysql目录下找到名字为libmySQL.dll和libmySQL.lib 的文件拷贝到当前工程目录下,并在"工程->设置->连接& ...

  4. abp 使用mysql_在Abp框架中使用Mysql数据库的方法以及相关问题小记

    最近发现了一款DDD的框架 看起来不错,据说挺流弊的 刚好最近要弄点小东西,拿来试试也不错 苦于穷逼买不起高配服务器,只好装mysql数据库了 下面说下如何在该框架下使用Mysql数据库 打开项目后, ...

  5. ci php做记录删除,CI(CodeIgniter)框架中的增删改查操作_PHP教程

    CodeIgniter的数据函数类在 \system\database\DB_active_rec.php 代码如下: class ModelName extends CI_Model { funct ...

  6. mfc mysql delete_MFC中简单的数据库文件操作(添加,修改,查找,删除)

    要求:新建一个数据库文件(微软的access),里面包括学生的信息学号(ID),姓名(Name),英语成绩(English),在Visual C++ 6.0里新建MFC项目,新建学生记录类(Stude ...

  7. tp3 php钩子函数,thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件)...

    thinkphp模型事件(钩子函数:模型中在增删改等操作前后自动执行的事件) 一.总结 1.通过模型事件(钩子函数),可以在插入更新删除等前后执行一些特定的功能 2.模型事件是写在模型里面的,控制器中 ...

  8. django系列5.1--ORM对数据库的操作

    Django---ORM数据库操作(图书管理系统基本实例) 一.基本知识 MVC模式(Model–view–controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Mo ...

  9. linux用c创建数据库,使用c语言实现linux数据库的操作

    前言:上一篇讲解了linux下使用命令行操作数据库,这篇继续讲解怎么使用c语言实现linux数据库的操作. 使用c语言实现环境搭建:既然我们要使用c语言实现linux数据库操作,那么首先我们得先把数据 ...

最新文章

  1. 魔法一样隔空在屏幕写字,捏起手指就能实现!在线可玩
  2. NoBrokersAvailableError
  3. Hadoop端口介绍及各种启动命令列表
  4. hihoCoder 1227 2015 北京网络赛 A题
  5. 云适配签约比亚迪 构建统一工作平台
  6. gitleb 登陆方式_gitlab连接方式
  7. Chapter 5 Blood Type——15
  8. 中文分词的python实现----HMM、FMM
  9. vs2015环境搭建与简单程序测试
  10. Kafka踩坑 - Couldn't find leaders for Set
  11. 微信公众号系列之创建新浪云平台应用
  12. 源码角度了解Skywalking之Skywalking是如何进行JVM监控的
  13. Android 六大布局
  14. Python爬虫天气预报(小白入门)
  15. uoj#311 【UNR #2】积劳成疾
  16. 1.1 卡牌对象的创建———自制卡牌游戏之旅
  17. 咸鱼怎么翻身?非计算机专业26岁转行Java,坚持了三年终于年薪36W+
  18. 代金券制作小程序秒代金券_免费的微信电子代金券制作(模板、设计)工具
  19. 范里安《微观经济学:现代观点》第九版笔记和课后答案
  20. win10一直正在检查更新_IT之家安卓/iOS版 7.15 更新:手机短信快捷登录/海外用户支持...

热门文章

  1. 快速实现一个真正的免费个人免签支付
  2. 冈萨雷斯数字图像处理——彩色图像增强3实例
  3. 数组常用方法 (ES4、5、6)
  4. 中国海洋大学食品加工与安全考研成功上岸经验分享
  5. 中国海洋大学计算机博士毕业要求,博士按时毕业不到四成 延长学制促慎重决定...
  6. Qt for Mac中文显示问题
  7. 网页版白噪声A Soft Murmur
  8. 神经网络实现手写数字识别(MNIST)
  9. 使用STM32 和 TF卡、VS1003制作MP3
  10. soff被判3年,软件业是福是祸?