无法弄清楚这里有什么问题:
class Model_form extends CI_Model
{
function __construct()
{
// Call the Model constructor
parent::__construct();
}
function add_tree()
{
$v_treename = $this->input->post('f_treename');
$v_treedesc = $this->input->post('f_treedesc');
$v_treeid = $v_treename;
$this->db->query("INSERT INTO trees (index, tree_name, tree_desc, tree_id) VALUES (NULL, '$v_treename', '$v_treedesc', '$v_treeid') "); //PROBLEM OCCURS HERE
}
收到此错误:
A Database Error Occurred Error Number: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'index, tree_name, tree_desc, tree_id) VALUES (NULL, 'TEST', 'TEST', 'TEST')' at line 1
我在另一个项目中使用了类似的代码,但它运行良好。使用MAMP在本地服务器上运行。感谢您提供的任何帮助。
答案 0 :(得分:5)
索引是mysql中的保留字。你需要在列名称周围添加反引号,即`index`,`tree_name`等。
答案 1 :(得分:2)
索引是mysql中受保护的单词。使用带有反引号的`index`。
受保护的单词是指在将它们称为字段时必须在查询中转义的单词。完整列表可用here
答案 2 :(得分:1)
这是一个MySQL错误,它的发生是因为你的树木'表格正在使用'索引的保留字。列。
您可以在列名称周围添加“index”反引号 - 甚至更好:更改'索引'列名称为' id'或类似的。
有关MySQL中保留字的列表,请参阅: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html