Yii中的SQL查询

时间:2013-06-05 14:46:52

标签: php yii

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

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

在插入功能的开头,我有

$connection = Yii::app()->db;
$transaction = $connection->beginTransaction();

try {
  $command = $connection->createCommand($this->insertQuestion);

  //multiple $command->bindParam() calls

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

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

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

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

1 个答案:

答案 0 :(得分:0)

根据文档,您可以执行以下操作:

$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。