阅读 145

Yii2框架(二)数据库相关操作

Yii2.0的数据库操作。

由于我这里安装的是yii2.0-advanced版本。这个破玩意是自带数据库的,上一篇的安装中数据库也一起随之安装完成。配置啥的,也都配置完成。

不论什么框架,对数据库都是有一套自己独立封装的模型操作类。

但是我一般都不用,学习成本太高,而且他其中封装的方法啥的一般都接触不全。学起来太费劲了。反正底层执行的都是sql。

所以这里Yii2.0自己封装的数据库相关的模型操作,我就略过了。

一般我习惯使用原生sql语句来对数据库进行增删改查。而且这种方法,我觉得对后期的维护也是一种很好的选择,毕竟,原生Sql语句,应该都能看的懂。少去了学习框架这部分的时间。

正式开始:

这里要说一下,Yii2.0中外部可以访问的方法都需要加上action,别问为什么,规定。

Yii2.0大概封装了两大众方法来执行数据库操作:

1:query()和queryXXX()方法,query()方法返回的是对象一般用的较少,当然,这个是对我来说,具体看你自己的需求。

(1):query方法

$dataReader=$command->query(); //返回CDbDataReader对象,注意这代表结果集而不是记录,可以通过以下方法来获取(遍历)记录: // CDbDataReader::read()可以一次获取一行数据,到末尾时返回false while(($row=$dataReader->read())!==false)  // CDbDataReader实现了迭代器接口因此可以使用foreach遍历 foreach($dataReader as $row) // 一次性返回所有的记录(数组)     $rows=$dataReader->readAll(); 复制代码

我们分别写几段代码来测试Yii2.0框架中为我们提供的执行原生sql的方法。

(2):queryXXX方法

(1)查询所有数据:(二维数组)queryAll

// sql语句         $sql_queryAll = "SELECT * FROM art_category";         // 创建查询对象         $command=Yii::$app->db->createCommand($sql_queryAll);         // 执行查询所有数据         $result = $command->queryAll();            echo "<pre>";         var_dump($result); 复制代码

(2):查询第一行数据:(一维数组)queryOne

// sql语句         $sql_queryAll = "SELECT * FROM art_category ";         // 创建查询对象         $command=Yii::$app->db->createCommand($sql_queryAll);         // 执行查询所有数据         // $result = $command->queryAll();         // 执行查询一行数据         $result = $command->queryOne();               echo "<pre>";         var_dump($result); 复制代码

其余的方法平时用的不多,用的话也是在sql语句里边实现的

2:execute方法

用于数据更新(非查询)操作(INSERT, UPDATE 和 DELETE),返回的是操作受影响的记录行数

(1):增加insert()->execute

// 批量写入         $insertSql = "INSERT INTO art_category (cat_name,cat_pid)                          values ('xxx','32'), ('aaaaaaa','963')";            $command=Yii::$app->db->createCommand($insertSql);            // 返回写入成功条数。         $result = $command->execute();            echo "<pre>";         var_dump($result); 复制代码

(2):修改update()->execute

// 修改语句         $sql = "UPDATE art_category SET cat_name = 'camellia' WHERE id = 10";            $command=Yii::$app->db->createCommand($sql);            // 返回修改成功条数。         $result = $command->execute();            echo "<pre>";         var_dump($result); 复制代码

(3):删除delete()->execute

// 删除语句         $sql = "DELETE FROM art_category WHERE id = '10'";            $command=Yii::$app->db->createCommand($sql);            // 返回删除成功条数。         $result = $command->execute();            echo "<pre>";         var_dump($result); 复制代码

执行原生sql的方法大概就是这些,后边遇到了再看吧。

然后看一下Yii2.0框架对于数据库事务的操作:

$db = Yii::app()->db; $dbTrans = $db->beginTransaction();      //开始事物 $dbTrans->commit();                      //提交 $dbTrans->rollback();                    //回滚 复制代码

很简单。

最后

数据无价,谨慎操作。


作者:camellia
链接:https://juejin.cn/post/7031719720613216269

文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐