• yii2数据库操作DAO


    执行 SQL 语句

    1 $db = Yii::$app->db;
    2 $rows = $db->createCommand('SELECT * FROM zs_dynasty')
    3 ->queryAll();
    1 $rowCount=$command->execute();   // 执行无查询 SQL
    2 $dataReader=$command->query();   // 执行一个 SQL 查询
    3 $rows=$command->queryAll();      // 查询并返回结果中的所有行
    4 $row=$command->queryRow();       // 查询并返回结果中的第一行
    5 $column=$command->queryColumn(); // 查询并返回结果中的第一列
    6 $value=$command->queryScalar();  // 查询并返回结果中第一行的第一个字段


    获取查询结果

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

     

  • 相关阅读:
    Angular2新人常犯的5个错误
    好爱情,坏爱情
    关于css中a标签的样式
    移动端rem布局实践
    我们这一代人的困惑
    原创ui.router源码解析
    Web客户端数据存储学习笔记——Cookie
    喝汤了——如何用一年时间获得十年的能力和经验
    Petya勒索木马
    推荐几个精致的web UI框架
  • 原文地址:https://www.cnblogs.com/yunyunde/p/7156364.html
Copyright © 2020-2023  润新知