执行 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();
来源:https://www.cnblogs.com/yunyunde/p/7156364.html