怜晚情之泪 2017-09-21 12:17:46 5252次浏览 0条评论 0 0 0

声明: 本文是yii2 调用存储过程的一些简单的操作,跟大家分享一下。有错误敬请大家批评指正。谢谢。

$result= Yii::$app->db->createCommand
('call  getDateList(:class_id,:cldate_day,:cldate_stime,:cldate_etime)')
    ->bindValues([":class_id" =>45, ":cldate_day" =>'2017-09-01',":cldate_stime"=>'9:00',":cldate_etime"=>'11:00'])->queryAll();

A.首先我们看一下这个语句:createCommand 表示要对数据库执行的SQL语句。
B.我们现在做的是查询:要执行返回结果数据集(如SELECT)的SQL语句,请使用queryAll(),queryOne(),queryColumn(),queryScalar() 或 query()。
C.call :执行 存储过程的语句 call getDateList(); 执行 存储过程getDateList(),即便没有传递参数,括号是必须要加的。括号里面是传递到存储过程里面的参数。如上代码所示。
D.bindValues(),这是绑定你要传递的参数,时间格式的参数要加‘’,例如:'2017-09-01'。bindValues里面设置的":class_id" 数组键名要与 存储过程getDateList(:class_id)保持一致。

下面是提供变量的值,具体操作可以参考手册
yii2手册

$result= Yii::$app->db->createCommand
('call  getDateList(:class_id,:cldate_day,:cldate_stime,:cldate_etime)')
    ->bindValues([":class_id" =>$class_id, ":cldate_day" =>$cldate_day,":cldate_stime"=>$cldate_stime,":cldate_etime"=>$cldate_etime])->queryAll();
 
$result= Yii::$app->db->createCommand
('call  getDateList(:class_id,:cldate_day,:cldate_stime,:cldate_etime)')
    ->bindValues([":class_id" =>$class_id, ":cldate_day" =>$cldate_day,":cldate_stime"=>$cldate_stime,":cldate_etime"=>$cldate_etime])->queryOne();
    没有找到数据。
您需要登录后才可以评论。登录 | 立即注册