• Yii2 数据操作DAO


    参考:

    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();

  • 相关阅读:
    android architecture
    java求解两个字符串之间的编辑距离
    URL和URI的区别
    java源码解析之qdox
    java中Random实现原理
    java中ThreadLocal入门
    java中多线程之Future入门
    java中类加载器入门
    java中正则表达式的group用法
    java反射调用main方法踩坑
  • 原文地址:https://www.cnblogs.com/GaoAnLee/p/5227789.html
Copyright © 2020-2023  润新知