如何在yii2直接执行SQL

执行SQL

        $connection=Yii::app()->db;   // 假设你已经建立了一个 "db" 连接

        $sql = "SELECT * FROM tbl_log WHERE logid<:logid";

        $command=$connection->createCommand($sql);

$v=10000;

//绑定参数防止SQL注入攻击

$command->bindParam(":logid",$v,PDO::PARAM_STR);

/**

                //execute(): 执行一个无查询 (non-query)SQL语句, 例如 INSERT, UPDATE 和 DELETE 。如果成功,它将返回此执行所影响的行数。

$rowCount=$command->execute();   // 执行无查询 SQL

$dataReader=$command->query();   // 执行一个 SQL 查询

$rows=$command->queryAll();      // 查询并返回结果中的所有行

$row=$command->queryRow();       // 查询并返回结果中的第一行

$column=$command->queryColumn(); // 查询并返回结果中的第一列

$value=$command->queryScalar();  // 查询并返回结果中第一行的第一个字段

*/

        $result = $command->queryAll();

return $result;

 

使用事务

$transaction=$connection->beginTransaction();
try {
  $connection->createCommand($sql1)->execute();
  $connection->createCommand($sql2)->execute(); //.... other SQL executions $transaction->commit();
} catch(\Exception $e){// 如果有一条查询失败,则会抛出异常
  $transaction->rollBack();
}

 

posted @ 2020-05-23 13:36  tochenwei  阅读(1861)  评论(0编辑  收藏  举报