drtoclr046994545 2013-04-16 17:24
浏览 147
已采纳

Yii params条件(PHP框架)

I am a complete newbie in the world of yii and doing my best to learn the framework as best as I can, while reading the book on Yii - 'Web Application Development Using Yii and PHP' by Jeffrey Winesett,

I came across :

'params'=>array(':projectId'=>$this->_project->id)

If anyone has read the book, can someone explain why do we use :projectId why not directly projectId? What does the ':' stand for? Is it the specific syntax or is it something php specific.

This was the exact code :

public function actionIndex()
    {

        $dataProvider=new CActiveDataProvider('Issue', array(
            'criteria'=>array(
                'condition'=>'project_id=:projectId',
                'params'=>array(':projectId'=>$this->_project->id),
            ),
        ));
        $this->render('index',array(
            'dataProvider'=>$dataProvider,
        ));
    }

Any answer would be highly appreciated. Regards.

  • 写回答

1条回答 默认 最新

  • douhan8581 2013-04-16 17:34
    关注

    The ":" id there to identify param within the condition string. It's a way to safely bind params to an sql statement.

    In your case, when you specify this condition

    project_id=:projectId
    

    In your db schema, Yii know that project_id is an integer, then when you bind the param with :

    'params'=>array(':projectId'=>$this->_project->id),
    

    Yii will make sure you bind an integer and write the SQL statement for it and generate SQL statement like this : project_id=26

    This is the same thing for string ex.:

            'criteria'=>array(
                'condition'=>'name=:myname',
                'params'=>array(':myname' => 'Ronald McDonald'),
            ),
    

    then your sql statement for this condition will be name='Ronald McDonald'

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乘性高斯噪声在深度学习网络中的应用
  • ¥15 运筹学排序问题中的在线排序
  • ¥15 关于docker部署flink集成hadoop的yarn,请教个问题 flink启动yarn-session.sh连不上hadoop,这个整了好几天一直不行,求帮忙看一下怎么解决
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥30 python代码,帮调试,帮帮忙吧