2016-06-29 56 views
0

到现在为止我一直使用yii2一个SQL查询其工作正常当地但当我把它部署到服务器时,它显示将SQL查询转换为yii2?

image.jpt

我试图改变它的Yii查询,是因为它是一个正确执行以下

$query = $connection->createCommand("SELECT a.name_of_flight, a.time_of_flight, (a.no_of_passenger - b.cnt) as avail, a.no_of_passenger FROM flight_schedule a LEFT JOIN (SELECT flight_time, COUNT(id) AS cnt FROM book_eticket WHERE flight_date='$date' AND company_name = '$comp_name' GROUP BY flight_time) b ON a.id = b.flight_time")->queryAll(); 

$query = (new \yii\db\Query()); 

$query 
    ->select('a.name_of_flight, a.time_of_flight, (a.no_of_passenger - b.cnt) as avail, a.no_of_passenger') 
    ->from('flight_schedule a') 
    ->leftJoin('flight_time', ('COUNT(id) AS cnt FROM book_eticket')) 
    ->where(array('and', 'flight_date=2016-6-29', 'company_name = Team5')) 
    ->groupBy(['flight_time b','ON a.id = b.flight_time']); 

$command = $query->createCommand(); 
$query = $command->queryAll(); 

但我得到一个错误:

enter image description here

任何人可以帮助我找出问题?在此先感谢

+0

关于第一:你可能做错了什么。你可以提供你的数据库配置? –

+0

关于第二请提供完整的错误(原始文本)与sql –

+0

$ query = $ connection-> createCommand(“SELECT a.name_of_flight,a.time_of_flight,(a.no_of_passenger - b.cnt)as avail,a.no_of_passenger FROM flight_schedule一个LEFT JOIN(选择flight_time,COUNT(id)AS cnt FROM book_eticket WHERE flight_date ='$ date'AND company_name ='$ comp_name'GROUP BY flight_time)b ON a.id = b.flight_time“) - > queryAll(); –

回答

1

第一个屏幕说关于访问问题。第二个 - 如日期团队的操作数不是字符串。那是错的。你能引用他们吗?

+0

是的第一个屏幕是服务器没有给予SQL访问,因为需要密码,日期和时间是静态的,因为仅用于测试..我需要在Yii中转换 –