yii操作数据库(PDO)

1、数据访问对象(DAO);

执行 SQL 语句

数据库连接建立后,SQL 语句就可以通过使用 [CDbCommand] 执行了。你可以通过使用指定的SQL语句作为参数调用 [CDbConnection::createCommand()] 创建一个 [CDbCommand] 实例。

[php]
$connection=Yii::app()->db;   // 假设你已经建立了一个 "db" 连接
// 如果没有,你可能需要显式建立一个连接:
// $connection=new CDbConnection($dsn,$username,$password);
$command=$connection->createCommand($sql);
// 如果需要,此 SQL 语句可通过如下方式修改:
// $command->text=$newSQL;

一条 SQL 语句会通过 [CDbCommand] 以如下两种方式被执行:

  • [execute()|CDbCommand::execute]: 执行一个无查询 (non-query)SQL语句, 例如 INSERTUPDATE 和 DELETE 。如果成功,它将返回此执行所影响的行数。
  • [query()|CDbCommand::query]: 执行一条会返回若干行数据的 SQL 语句,例如 SELECT。 如果成功,它将返回一个 CDbDataReader实例,通过此实例可以遍历数据的结果行。为简便起见, (Yii)还实现了一系列 queryXXX() 方法以直接返回查询结果。

执行 SQL 语句时如果发生错误,将会抛出一个异常。

[php]
$rowCount=$command->execute();   // 执行无查询 SQL,增、删、改$dataReader=$command->query();   // 执行一个 SQL 查询,但是不返回数据
$rows=$command->queryAll();      // 查询并返回结果中的所有行
$row=$command->queryRow();       // 查询并返回结果中的第一行
$column=$command->queryColumn(); // 查询并返回结果中的第一列
$value=$command->queryScalar();  // 查询并返回结果中第一行的第一个字段

获取查询结果(query方法和read方法)

在 [CDbCommand::query()] 生成 CDbDataReader 实例之后,你可以通过重复调用 [CDbDataReader::read()] 获取结果中的行。你也可以在 PHP 的 foreach 语言结构中使用 CDbDataReader 一行行检索数据。

[php]
$dataReader=$command->query();
// 1、重复调用 read() 直到它返回 falsewhile(($row=$dataReader->read())!==false) { ... }
// 2、使用 foreach 遍历数据中的每一行
foreach($dataReader as $row) { ... }
// 3、一次性提取所有行到一个数组
$rows=$dataReader->readAll();

Note|注意: 不同于 [query()|CDbCommand::query], 所有的 queryXXX() 方法会直接返回数据。 例如, [queryRow()|CDbCommand::queryRow] 会返回代表查询结果第一行的一个数组。

来自为知笔记(Wiz)

时间: 2024-10-11 18:06:48

yii操作数据库(PDO)的相关文章

PHP操作数据库PDO

PHP操作数据库 加载数据库驱动 访问phpinfo.php可以查看是否已经加载数据库驱动,如下显示还没有加载mySql数据库驱动. 在c盘找到php.ini配置文件开启加载mySql驱动,如下图,去掉分号. 连接数据库 <?php //连接数据库 $dsn="mysql:dbname=test;host=127.0.0.1";//数据源名 $user="root";//用户名 $password="715632";//密码 try{ $p

yii操作数据库(AR)

模型: 有多少数据表,就建立多少模型 模型其实就是类 我们对数据库进行操作,需要实例化模型类,产生对象 通过对象调用相关的方法,就可以实现数据库的操作 增加记录 1 [php] 2 $post =newPost(); 3 $post->title ="jack"; 4 $post->content ="1111111"; 5 $post->createtime = time(); 6 $post->save(); 通过观察mdm项目发现在mo

php pdo操作数据库

POD扩展是在PHP5中加入,该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题. PDO的特点: 性能.PDO 从一开始就吸取了现有数据库扩展成功和失败的经验教训.因为 PDO 的代码是全新的,所以我们有机会重新开始设计性能,以利用 PHP 5 的最新特性.能力.PDO 旨在将常见的数据库功能作为基础提供,同时提供对于 RDBMS 独特功能的方便访问. 简单.PDO 旨在使您能够轻松使用数据库.API 不会强行介入您的代码,同时会清楚地表明

PDO面向对象操作数据库服务器

1.PDO是PHP新版中推荐的基于面向对象操作数据库服务器的方式. 开启PDO_mysql相关扩展:在php.ini中修改extension=php_pdo_mysql.dll 重启apache 2.PDO操作数据库的基本使用步骤 连接,认证,发送SQL,等待mysql服务器的执行结果,处理执行结果 3.pdo操作数据库的代码: <?php //实例化PDO对象 $dsn='mysql:host=localhost;port=3306;dbname=php34'; $username='root

Yii使用数据库操作

1.安装数据库 如果你是通过composer安装的话,只需要通过命令行, 需要先配置字符串,2.0在yii\common\config\main-local.php里面 <?php return [ 'components' => [ 'db' => [ 'class' => 'yii\db\Connection', 'dsn' => 'mysql:host=localhost;dbname=yii', 'username' => 'root', 'password'

封装的 PDO 操作数据库 的帮助类 MySqlHelper

封装的 PDO 操作数据库 的帮助类 MySqlHelper 封装的 PDO 操作数据库 的帮助类 MySqlHelper ,仅供学习交流使用! <?php /** * Description of MySqlHelper * * @author fx678 */ class MySqlHelper { private static $pdoDB = null; public function __destruct() { $this->pdoDB = null; } /** * 获取ini配

PHP数据库的操作(PDO)

PHP 5.1 发布时将附带一个全新的数据库连接层,即 PHP Data Objects (PDO).虽然 PHP 一直都拥有很好的数据库连接,但 PDO 让 PHP的数据库操作 达到一个新的高度.PDO可支持基本的MySQL.Microsoft SQL Server.Oracle等数据库,并且提供了统一的操作方法,高度集成了数据库操作.PDO的使用较好的解决项目开发过程中可能存在的数据库更换问题. PDO对数据库的操作方法如增删改查,进行了统一整合,但对原始的数据库语句存在的差异,并不能完美的

YII访问数据库(Yii Dao)

CDbConnection: 一个抽象数据库连接CDbCommand: SQL statementCDbDataReader: 匹配结果集的一行记录CDbTransaction:数据库事务 访问数据库前需要建立数据库连接:使用DAO建立一个抽象数据库链接:$connection = new CDbConnection($dsn, $username, $password);$connection->active = true;     // 只有激活了连接才可以使用// 想要关闭连接,可以这样:

yii框架数据库操作数据访问对象(DAO)简单总结

Yii提供了强大的数据库编程支持.Yii数据访问对象(DAO)建立在PHP的数据对象(PDO)extension上,使得在一个单一的统一的接口可以访问不同的数据库管理系统(DBMS).使用Yii的DAO开发的应用程序可以很容易地切换使用不同的数据库管理系统,而不需要修改数据访问代码.Yii 的Active Record( AR ),实现了被广泛采用的对象关系映射(ORM)办法,进一步简化数据库编程.按照约定,一个类代表一个表,一个实例代表一行数据.Yii AR消除了大部分用于处理CRUD(创建,