Symfony4如何通过直接书写SQL控制数据库 CJayhe Symfony博客 450 views ## 前言 ORM写法是Symfony推荐的写法,只有那样写才能最大限度的发挥融入Symfony。但实际情况中,也有可能需要直接用sql来完成。 ## 数据库连接 ```php use use Doctrine\DBAL\Connection; /** * @var Connection $conn */ $conn = $this->getDoctrine()->getConnection(); ``` **在Business中可通过** ```php $this->conn ``` ## 查询 ```php //查询所有,返回二维数组 $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. 插入 ```php $this->conn->insert('table_name', array('id' => 1)); ``` 2. 编辑 ```php $this->conn->update('table_name', array('id' => 2), array('id' => 1)); ``` 3. 删除 ```php $this->conn->delete('table_name', array('id' => 1)); ``` 4. 执行SQL返回影响行 ```php $this->conn->executeUpdate('update table set id = ? where id = ?', array(2, 1)); ``` ## 事务 ```php //启动事务 $this->conn->beginTransaction(); try { //事务成功提交 $this->conn->commit(); }catch (\Exception $exception){ //事务失败回滚 $this->conn->rollBack(); } ``` 帮助PHPZlc项目! 与任何开源项目一样, 贡献代码 或 文档 是最常见的帮助方式, 但我们也有广泛的 赞助机会。 0 赞赏 加入技术群 评论 去登录