2012-04-28 46 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的缺點之一,您可以整天編輯模式,但如果您不更新模式配置文件並重建模型,各種事情都可能會中斷。