$result = array(
'id'=>null,
'val'=>0
);
$row1 = Yii::app()->db->createCommand()->insert('test1', $result);
$id = Yii::app()->db->getLastInsertID();
$row2 = Yii::app()->db->createCommand()->update('test1', array('val'=>$id) , 'id=:id',array(':id'=>$id));
echo $id;
exit;
#1. 建立数据库连接 可以使用 try...catch 捕获可能抛出的异常
array(
'components'=>array(
'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'mysql:host=localhost;dbname=testdb',
'username'=>'root',
'password'=>'password',
'emulatePrepare'=>true, // needed by some MySQL installations
),
),
)
# 然后使用这种方式来建立连接,我们就可以通过
$connection = Yii::app()->db
# 访问数据库连接了。它已经被自动激活了,除非我们特意配置了
$connection->active=true; # 建立链接之后active为true;
$connection->active=false; # 关闭连接
#运行SQL
$command=$connection->createCommand($sql);
#SQL修改
$rowCount = $command->execute(); # 执行无查询 SQL
$dataReader = $command->query(); # 执行一个 SQL 查询
$rows = $command->queryAll(); # 查询并返回结果中的所有行
$row = $command->queryRow(); # 查询并返回结果中的第一行
$column = $command->queryColumn(); # 查询并返回结果中的第一列
$value = $command->queryScalar(); # 查询并返回结果中第一行的第一个字段
#########################################################
$dataReader = $command->query();
#方法1 重复调用 read() 直到它返回 false
$transaction= $connection->beginTransaction();
try
{
$connection->createCommand($sql1)->execute();
$connection->createCommand($sql2)->execute();
#其他
$transaction->commit();
}
catch(Exception $e) # 如果有一条查询失败,则会抛出异常
{
$transaction->rollBack(); #回滚
}
#########################################################
$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();
#bindParam() 和 bindValue() 非常相似。
$sql="SELECT username, email FROM tbl_user";
$dataReader=$connection->createCommand($sql)->query();
#使用 $username 变量绑定第一列 (username)
$dataReader->bindColumn(1,$username);
#使用 $email 变量绑定第二列 (email)
$dataReader->bindColumn(2,$email);
while($dataReader->read()!==false)
array(
'components'=>array(
'db'=>array(
'class'=>'CDbConnection',
'connectionString'=>'mysql:host=localhost;dbname=testdb',
'username'=>'root',
'password'=>'password',
'emulatePrepare'=>true, // needed by some MySQL installations
'tablePrefix'=>"表前缀_"
),
),
)
$sql='SELECT * FROM {{user}}';
$users=$connection->createCommand($sql)->queryAll();
######################
$user = Yii::app()->db->createCommand()
->select('username, password')
->from('tbl_user')
->where('id=:id', array(':id'=>1))
->queryRow();
where() 方法 (可用自 v1.1.6)
$conditions 参数可以是一个字符串(例如 'id=1')或一个数组。
如果是后者,它必须是这种格式 array(operator, operand1, operand2, ...), 操作符可以是下面当中的一个,可能的操作数依赖于相应的操作符 :