2014-11-21 104 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