【问题标题】:SQL for PhP YiiPhP Yii 的 SQL
【发布时间】:2014-05-28 04:05:07
【问题描述】:

我是 php yii 的新手。我试图从该位置获取并打印保险。用户可以插入日期和位置以显示结果。 我使用这个 SQL 从 2 个表中获取数据库。一个是基本信息(t1),另一个是保险信息(t2)。但是,SQL 不起作用。 SQL注释如下:

public static function getInsuranceRecordsByLocation($datefrom, $dateto, $location, $table1, $table2)   //for rp4
    {   

        $rs = Yii::app()->db->createCommand()
            ->select("t1.ID, t2.INSURED_PERIOD, t1.ENGLISH_TITLE, t1.CURRENT_LOCATION, t2.VALUE_EST")
            ->from($table1 t1, $table2 t2)
            ->where('t2.INSURED_PERIOD>=:dfrom AND  t2.INSURED_PERIOD<=:dto' ,  array(
               ':dfrom'=>CommonFunc::datebinding($datefrom),
               ':dto'=>CommonFunc::datebinding($dateto)
             )
         )
           ->order('t1.ID,t2.INSURED_PERIOD')
           ->queryAll();
return $rs; 
}

另外一个函数如下所示: 用户插入信息后,该值将传递给保险函数,这些值传递给上述函数以显示保险结果:

   public function insurance($v_dfrom,$v_dto, $location) 
{   
        $v_date = date('Y-m-d ');
        $v_daterage = ($v_dfrom . ' to ' . $v_dto);         
        $TotalSum = 0;

        $rsInsurance = InsuranceLibrary::getInsuranceRecordsByLocation($v_dfrom, $v_dto, $location, Archives::tableName(), Archives_Insurance::tableName());    


    //Then these varable will be printed on the web.

       }

谁能帮忙修改SQL。非常感谢

【问题讨论】:

    标签: php sql yii


    【解决方案1】:

    你有语法问题,我不知道变量,但这应该可以:

    $rs = Yii::app()->db->createCommand()
        ->select("t1.ID, t2.INSURED_PERIOD, t1.ENGLISH_TITLE, t1.CURRENT_LOCATION, t2.VALUE_EST")
        ->from("$table1 t1")
        ->join("$table2 t2" , 't1.field = t2.field2')
        ->where('t2.INSURED_PERIOD>=:dfrom AND  t2.INSURED_PERIOD<=:dto' ,  array(
            ':dfrom'=>CommonFunc::datebinding($datefrom),
            ':dto'=>CommonFunc::datebinding($dateto)
            )
        )
        ->order('t1.ID,t2.INSURED_PERIOD')
        ->queryAll();
    
    return $rs;
    

    【讨论】:

    • 对不起我的错。您的代码不起作用,因为包含 SQL 的代码是从数据库中选择 $table1 和 $table2 的函数
    • 完整版如上图所示问题已修改
    • 使用连接并将相关列放入fieldfield2
    • 你能举个例子吗?我不知道如何使用join。谢谢。
    • 对不起,我不知道'field'和'field2'是什么意思?是不是意味着:->join("$table2 t2" , 't1.INSURED_PERIOD = t2.INSURED_PERIOD')
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-23
    • 2016-05-13
    相关资源
    最近更新 更多