2011-05-27 77 views
0

不能找出什麼是錯在這裏:PHP代碼點火器數據庫錯誤

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在本地服務器上運行。感謝您的任何幫助,您可以提供。

回答

5

索引是mysql中的保留字。你需要在列名稱周圍加上反引號,例如`index`,`tree_name`等。

2

索引是mysql中的一個保護字。用反引號使用`index`。

受保護字是那些在將字段引用到查詢時必須轉義的字。完整列表可用here

1

這是一個MySQL錯誤,它發生是因爲你的'樹'表使用'index'列的保留字。

您可以在列名稱周圍添加`index`反引號 - 甚至更好:將'index'列名更改爲'id'或類似名稱。

對於MySQL中保留字列表,請參閱: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html