学习YII数据库操作,先写一个方法测试。
public function actionTestDB(){
$conn = new CDbConnection("mysql:host=localhost;dbname=yiiblog","littlebear","littlebear");
$conn->active = true;
$sql = 'select * from tbl_tag';
$dataReader = $conn->createCommand($sql)->query(); //这是一个 CDbDataReader 对象
foreach($dataReader as $row){
echo $row['id']." ";
echo $row['name']." ";
echo $row['frequency']."<br>";
}
$datas = $conn->createCommand($sql)->queryAll();
print_r($datas);
echo "<hr>";
foreach($datas as $data){
echo $data['id']." ";
echo $data['name']." ";
echo $data['frequency']."<br>";
}
$row = $conn->createCommand($sql)->queryRow();
print_r($row)."<br>"; //只输出查询结果的第一行 是数组
$row = $conn->createCommand($sql)->queryColumn();
print_r($row)."<br>"; //只输出查询结果的第一列 是数组
$row = $conn->createCommand($sql)->queryScalar();
echo($row); //只输出查询结果的第一行第一列的第一个字段 是一个变量
echo "<hr>";
$dataReader = $conn->createCommand($sql)->query(); //这是一个 CDbDataReader 对象
$datas = $dataReader->readAll(); //这里相当于使用:$conn->createCommand->queryAll(); 得到一个包含所有结果的数组
print_r($datas);
echo "<hr>bindColumn<br>";
$sql1 = 'select id,name from tbl_tag';
$command = $conn->createCommand($sql1);
$dataReader = $command->query();
$dataReader->bindColumn(1,$id);
$dataReader->bindColumn(2,$name);
while($dataReader->read()!==false){
echo $id.": ".$name."<br>";
}
echo "<hr> BindParam <br>";
//$conn = Yii::app()->db; 这两是等效的
$update = "update tbl_tag set frequency=:frequency";
$command = $conn->createCommand($update);
$value = 5;
$command->bindParam(":frequency",$value,PDO::PARAM_STR);
echo $command->execute(); //非查询方法 返回执行所影响的结果数,若果更新数和数据库中一样,则不进行更新,返回0
echo "<hr>";
}