zoukankan      html  css  js  c++  java
  • 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();

  • 相关阅读:
    协同过滤
    深度学习中 epoch,[batch size], iterations概念解释
    如何查看Python内置模块的实现代码
    机器学习/数据挖掘/算法岗位
    算法工程师B
    算法工程师A
    web性能测试基本性能指标
    Loadrunner11不能调用IE8解决方法大全
    抓取Android应用的log
    关于字符latin capital letter sharp s "ß"( U+1E9E)显示的问题
  • 原文地址:https://www.cnblogs.com/GaoAnLee/p/5227789.html
Copyright © 2011-2022 走看看