SQL Queries in Yii


SQL Queries in Yii

我正在使用Yii框架在项目中构造一个数据访问对象。其中一个插入查询比较复杂,因为它分布在三个相关的表上。

此时,我已经写出了SQL查询,并且没有使用QueryBuilder。

在插入函数的开头,我有

$connection = Yii::app()->db;
$transaction = $connection->beginTransaction();
try {
  $command = $connection->createCommand($this->insertQuestion);
  //multiple $command->bindParam() calls

根据文档,可以重用CDbCommand实例来构建多个查询。但是,在重用新查询时必须调用CdbCommand::reset

这只出现在文档的QueryBuilder部分中。由于我使用CdbCommand::bindParam将变量绑定到查询而不使用QueryBuilder,是否有必要对我做

$command->reset();
$command->setText($sqlText);
$command->bindParam("sqlVar", $variable, PDO::PARAM_INT);

在这种情况下是否可以跳过使用CDbCommand::reset ?

根据文档,您可以这样做:

$transaction=$connection->beginTransaction();
try
{
   $connection->createCommand($sql1)->execute();
   $connection->createCommand($sql2)->execute();
   //.... other SQL executions
   $transaction->commit();
}
catch(Exception $e)
{
   $transaction->rollback();
}
如果你知道你要使用的SQL,只需使用$sql1, $sql2和$sql3。