Symfony4如何通过直接书写SQL控制数据库

2021-04-16  by  

前言

ORM写法是Symfony推荐的写法,只有那样写才能最大限度的发挥融入Symfony。但实际情况中,也有可能需要直接用sql来完成。

数据库连接

use use Doctrine\DBAL\Connection;

/**
 * @var Connection $conn
 */
$conn = $this->getDoctrine()->getConnection();

在Business中可通过

$this->conn

查询

//查询所有,返回二维数组
$this->conn->fetchAll('select 1 from table where id = ?', array('12'));

//查询一条数据,返回一维数组
$this->conn->fetchAssoc('select 1 from table where id = ?', array('12'));

//查询具体值,返回值或者空
$this->conn->fetchColumn('select count(id) as count from table where id = ?', array('12'));

插入,更新,删除

  1. 插入

     $this->conn->insert('table_name', array('id' => 1));
    
  2. 编辑

     $this->conn->update('table_name', array('id' => 2), array('id' => 1));
    
  3. 删除

     $this->conn->delete('table_name', array('id' => 1));
    
  4. 执行SQL返回影响行

     $this->conn->executeUpdate('update table set id = ? where id = ?', array(2, 1));
    

事务

   //启动事务
   $this->conn->beginTransaction();

   try {

       //事务成功提交
       $this->conn->commit();
   }catch (\Exception $exception){
       //事务失败回滚
       $this->conn->rollBack();
   }

找到错别字了?本文档有什么问题么?分叉并编辑 它 !

CJayhe

谢谢您的赞赏~

使用微信扫描二维码完成支付