博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2 数据操作DAO
阅读量:5371 次
发布时间:2019-06-15

本文共 2218 字,大约阅读时间需要 7 分钟。

参考:

http://www.yiiframework.com/doc/guide/1.1/zh_cn/database.dao

http://blog.csdn.net/hzqghost/article/details/44116039

执行 SQL 语句
$db = \Yii::$app->db;
$rows = $db->createCommand('SELECT * FROM zs_dynasty')
->queryAll();
$rowCount=$command->execute();   // 执行无查询 SQL
$dataReader=$command->query();   // 执行一个 SQL 查询
$rows=$command->queryAll();      // 查询并返回结果中的所有行
$row=$command->queryRow();       // 查询并返回结果中的第一行
$column=$command->queryColumn(); // 查询并返回结果中的第一列
$value=$command->queryScalar();  // 查询并返回结果中第一行的第一个字段
获取查询结果
$db = \Yii::$app->db;
$query = $db->createCommand('SELECT * FROM zs_dynasty')
->query();
while(($row=$query->read())!==false) { 
print_r($row);
}
// 使用 foreach 遍历数据中的每一行
$query = $db->createCommand('SELECT * FROM zs_dynasty')
->query();
foreach($query as $row) {
print_r($row);
}
// 一次性提取所有行到一个数组
$query = $db->createCommand('SELECT * FROM zs_dynasty')
->query();
$rows=$query->readAll();
print_r($rows);
使用事务
$db = \Yii::$app->db;
$transaction=$db->beginTransaction();
try
{
$query = $db->createCommand('SELECT * FROM zs_dynasty')
->query();
$transaction->commit();
}
catch(Exception $e) // 如果有一条查询失败,则会抛出异常
{
$transaction->rollBack();
}
$rows=$query->readAll();
print_r($rows);
绑定参数
// 一条带有两个占位符 ":username" 和 ":email"的 SQL
$sql="INSERT INTO tbl_user (username, email) VALUES(:username,:email)";
$db = \Yii::$app->db;
$command=$db->createCommand($sql);
// 用实际的用户名替换占位符 ":username" 
$command->bindParam(":username",$username,PDO::PARAM_STR);
// 用实际的 Email 替换占位符 ":email" 
$command->bindParam(":email",$email,PDO::PARAM_STR);
$command->execute();
// 使用新的参数集插入另一行
$command->bindParam(":username",$username2,PDO::PARAM_STR);
$command->bindParam(":email",$email2,PDO::PARAM_STR);
$command->execute();
绑定列
$sql="SELECT username, email FROM tbl_user";
$dataReader=$db->createCommand($sql)->query();
// 使用 $username 变量绑定第一列 (username) 
$dataReader->bindColumn(1,$username);
// 使用 $email 变量绑定第二列 (email) 
$dataReader->bindColumn(2,$email);
while($dataReader->read()!==false)
{
    // $username 和 $email 含有当前行中的 username 和 email 
}
使用表前缀
配置:Connection::tablePrefix 
在 SQL 语句中使用 {
{%TableName}}
$sql='SELECT * FROM {
{user}}';
$users=$connection->createCommand($sql)->queryAll();

转载于:https://www.cnblogs.com/GaoAnLee/p/5227789.html

你可能感兴趣的文章
主要日期函数的分类
查看>>
Glide 下载Gif文件
查看>>
全排列
查看>>
c# 对SOAP返回XML字符串的解析方法
查看>>
线程Thread
查看>>
最长公共子串_暴力解法(不会正解)36行
查看>>
摆棋子
查看>>
冲刺二------个人任务
查看>>
[HIve - LanguageManual] Joins
查看>>
unity里的c#
查看>>
UMLl类图实例
查看>>
java随机汉字生成
查看>>
Win7 “Bluetooth设置”对话框无法打开,及无法查找到设备
查看>>
"Coding Interview Guide" -- 在行列都排好序的矩阵中找数
查看>>
Maven与Antx(整理)
查看>>
洛谷P1082同余方程
查看>>
CSS中怎么让DIV居中
查看>>
windows配置jenkins编码
查看>>
关于服务器程序运行中收到SIGPIPE(转)
查看>>
npm 安装Vue环境时报错
查看>>