CDbCriteria条件和参数

时间:2014-10-03 14:37:58

标签: php mysql sql yii

这是我第一次尝试使用CDbCriteria,所以我应该有一个概念错误,我在类AsistenciasUtils中有下一个函数:

public function getCodigoTecnico()
{
//  $id=null;
$codigos=new CDbCriteria;
$codigos->select='codigo';
$codigos->condition='id=:id';
$codigos->params=array(':id'=>$id);

$listaCodigos=CHtml::listdata(Tecnicos::model()->findAll($codigos),'id','codigo');

return $listaCodigos;

}

这在_form中用于此行。

<div class="span4">

    <?php echo $form->labelEx($model,'n_asistencia'); ?>
    <?php echo $form->textFieldRow($model,'n_asistencia',array('disabled'=>true, 'value'=>AsistenciasUtils::getNumeroAsistencia(),)); ?>
    <?php echo $form->error($model,'n_asistencia'); ?>
</div>

为了使用CDbCriteria,我已经阅读了很多相似的网站,但在这种情况下。

a)如果我不写paramas = array(),结果是下一个错误 “CDbCommandfallóalejecutar la sentencia //无法解释句子SQL:SQLSTATE [HY093]:参数号无效:没有参数被绑定。执行的SQL语句是:SELECT codigo FROM asistencias_tecnicos {{1 WHERE id =:id

b)如果我添加params行,我会在应用程序“错误500”的主体中重现此错误 未定义的变量:id “(这对我来说非常令人惊讶)

c)如果我用一个数字改变$ id变量它可以工作,但我只获得一个寄存器。

我并不认为究竟是什么是params(在SQL句子中)

还有一件事,当我没有错误(并且只返回一个寄存器)时,此消息会出现在_form的主体中。 SQL sentence in the middel of the body

我不明白错误。非常感谢。

0 个答案:

没有答案