2014-11-21 141 views

回答

8

因爲key是MySQL保留的關鍵字。

http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

請使用一個反勾對字key

$upper = $this->db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE `key`='ndz_limit_up'"); 
$lower = $this->db->query("SELECT * FROM " . DB_PREFIX . "setting WHERE `key`='ndz_limit_down'"); 

避免這類問題最好的辦法是:

我們應該檢查MySQL的保留字在創建數據庫表字段。

我們應該確保我們沒有使用任何關鍵字作爲我們的領域。

方式與此處理:

1)使用反引號(')對錶和字段名稱。

2)對於表,預先安裝數據庫名稱,如:databaseName.tableName

對於字段:前置表名稱如:tableName.fieldName

這樣,MySQL會解釋提供的不是MySQL保留關鍵字,而是數據庫表或字段名稱。

+0

謝謝,我們是否必須在所有列名上打勾,而不是保留? – devst3r 2014-11-21 11:42:39

+1

沒必要。但是,是的,如果我們說,它更好。 – Pupil 2014-11-21 11:43:12

+0

如果我的答案適合您,請將其標記爲解決方案,以便其他社區成員可以獲得。 – Pupil 2014-11-21 11:43:37