0

I can't figure out what's wrong here:

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
    } 

Get this error:

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

I've used similar code on another project and it worked fine. Running on local server with MAMP.

3 Answers 3

5

Index is a reserved word in mysql. You need to put backticks around the column names ie `index`, `tree_name` etc.

Sign up to request clarification or add additional context in comments.

Comments

2

Index is a protected word in mysql. Use `index` with backticks.

Protected words are those which must be escaped inside a query when referring to them as a field. A full list is available here

Comments

1

This is a MySQL error and it happens because your 'trees' table is using a reserved word for the 'index' column.

You can add `index` backticks around the column name - or even better: change the 'index' column name to 'id' or similar.

For a list of reserved words in MySQL, please see: http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.