$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'");
请帮忙。
答案 0 :(得分: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'");
避免此类问题的最佳方法是:
我们应该在创建DataBase表字段时检查MySQL保留关键字。
我们应该确保我们没有使用任何关键字作为我们的领域。
解决这个问题的方法:
1)对表和字段名称使用反引号(`)。
2)对于表格,请在数据库名称前加上:databaseName.tableName
。
对于字段:预先添加表名称,如:tableName.fieldName
。
这样,MySQL会解释所提供的不是MySQL保留关键字,而是数据库表或字段名。