Yii数据库查找语句

Yii2实战教程 2016年3月24日 5.17K

建立数据库连接

$connection=Yii::app()->db; // 假设你已经建立了一个 “db” 连接 // 如果没有,你可能需要显式建立一个连接: // $connection=new CDbConnection($dsn,$username,$password); $command=$connection->createCommand($sql); // 如果需要,此 SQL 语句可通过如下方式修改: // $command->text=$newSQL;
执行 SQL 语句

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

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

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

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

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

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

$dataReader=$command->query(); // 重复调用 read() 直到它返回 false

while(($row=$dataReader->read())!==false) { … }

// 使用 foreach 遍历数据中的每一行

foreach($dataReader as $row) { … }

//一次性提取所有行到一个数组 $rows=$dataReader->readAll();

$rowCount = $command->execute();
$dataReader = $command->query();
$rows=$command->queryAll();
$row =$command->queryRow();
$column =$command->queryColumn();
$value = $command->queryScalar();

绑定参数

// 一条带有两个占位符 “:username” 和 “:email”的 SQL
$sql=”INSERT INTO tbl_user (username, email) VALUES(:username,:email)”; $command=$connection->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语句执行更新操作(不适用模型)

方法一

$sql = ‘update video set status = 1 where status = 0’;

$effectRows = Yii::app()->db->createCommand($sql)->execute();//返回受影响行数

方法二:

Yii::app()->db

    ->createCommand(“update video set status = :status where status = 0”)

    ->bindValues(array(‘:status’ => $_POST[‘status’]))

    ->execute();//同样是返回受影响行

如果是使用query则不能返回受影响行

$sql = ‘update video set status = 1 where status = 0’;

$effectRows = Yii::app()->db->createCommand($sql)->query();

如果使用queryAll()等方法,直接报错

$effectRows = Yii::app()->db->createCommand($sql)->queryAll();


关注微信公众号『PHP学习网

第一时间了解最新网络动态
关注博主不迷路~

PHP学习网:站内收集的部分资源来源于网络,若侵犯了您的合法权益,请联系我们删除!
分享到:
赞(1)

文章评论

您需要之后才可以评论
1点赞 0评论 收藏 QQ分享 微博分享

PHP学习网

PHP学习网