2012-04-28 50 views
0

我有一个事件表中的事件表,从我的数据库中选择eventid,年,月,日来创建日历中的动态链接。来自查询日历数组的怪异数据库错误

这里是我的控制器:

$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。

我对事件表(列名)DB的结构是:

事件ID,事件类型,描述,dateof(这是一个日期型)

我通常会如果误差线图了这一点我的控制器/模型/视图被显示,但是它在系统级显示一个错误,这完全抛弃了我。任何帮助是极大的赞赏。谢谢。

+0

你的数据库模式呢? – 2012-04-28 22:15:55

+4

产生错误的查询发生在您发布的代码以外的某处。它可能基于模式文件从模型调用中生成。检查你的模式文件,看看它是否有'date'引用而不是'dateof'。 – 2012-04-28 22:16:17

+1

迈克 - 你是对的,我之前从日期到日期改变了列名,以避免冲突,但是为了改变模型中的所有引用,愚蠢的错误。如果你想“提交答案”,我会接受。谢谢 – 2012-04-28 22:33:11

回答

0

产生错误的查询发生在您发布的代码以外的某处。它可能基于模式文件从模型调用中生成。检查您的模式文件并查看它是否有date引用而不是dateof

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