来自查询的日历数组的奇怪的db错误

时间:2012-04-28 22:12:00

标签: php database codeigniter

我有一个带有事件表的“事件”的数据库,它从我的数据库中选择一个偶数,年,月,日,以便在日历中创建动态链接。

这是我的控制器:

$this->load->model('Sitemodel');
$month=date('n');
$year=date('Y');
$datearray=$this->Sitemodel->get_dates($month,$year);

$baseurl=base_url('site/event').'/';
foreach ($datearray as $datee) {
       $dateeday=$datee['dtDay'];
       $datacalendar[$dateeday]= $baseurl.$datee['eventid'];
}
$data['calenderinfo']=$this->calendar->generate($year,$month,$datacalendar);
$data['events']=$this->Sitemodel->get_10_all_events();

$this->load->view('index',$data);

这是我的模特:

function get_dates($month,$year){
   $sql="SELECT eventid, DAY(dateof) AS dtDay, MONTH(dateof) AS dtMonth, YEAR(dateof) AS dtYear FROM event WHERE MONTH(dateof)=? AND YEAR(dateof)=?";
   $result=$this->db->query($sql,array($month,$year));
   return $result->result_array();
}

我得到的错误是:

A Database Error Occurred

Error Number: 1054

Unknown column 'date' in 'order clause'

SELECT * FROM (`event`) ORDER BY `date` desc LIMIT 10

Filename: C:\wamp\www\event\system\database\DB_driver.php

Line Number: 330

我无法调试错误,因为当我知道它必须是我的控制器/模型中的内容时,它会链接回DB_driver。

我的事件表(列名)的数据库结构是:

eventid,eventtype,description,dateof(日期类型)

如果显示我的控制器/模型/视图的错误行,我通常可以解决这个问题,但是它在系统级别显示错误,这完全抛弃了我。任何帮助是极大的赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

产生错误的查询发生在您发布的代码之外的某个地方。它可能是基于模式文件从模型调用生成的。检查您的架构文件,看看它是否有date引用,而不是dateof

这是ORM的一个缺点,您可以整天编辑架构,但如果您不更新架构配置文件,并重建模型,那么各种各样的事情都可能会中断。