4
$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'");
$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'");
因为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保留关键字,而是数据库表或字段名称。
谢谢,我们是否必须在所有列名上打勾,而不是保留? – devst3r 2014-11-21 11:42:39
没必要。但是,是的,如果我们说,它更好。 – Pupil 2014-11-21 11:43:12
如果我的答案适合您,请将其标记为解决方案,以便其他社区成员可以获得。 – Pupil 2014-11-21 11:43:37