SQLSTATE[42000]: Syntax error or access violation (db_insert Function) I try to build new module in drupal 7
I try to insert some data in some where inside the code 
it was working in many functions 
but suddenly when I try to do the following  

  db_insert('payment_request')
    -&gt;fields(array(
      'payment_item' =&gt; $data['payment_item'],
      'change' =&gt; $data['change'],
      'via' =&gt; $data['via'],
      'userlist' =&gt; serialize($userlisthidden),
      'startdate' =&gt; strtotime($data['startdate']),
      'enddate' =&gt; strtotime($data['enddate']),  
      'hash' =&gt; $hash   
    ))-&gt;execute();


it gives me an error 

SQLSTATE[42000]: Syntax error or access violation: 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 'change, via, userlist, startdate, enddate, hash) VALUES ('2', '1', '1', 'a:1:{i:' at line 1


I checked the table and the fields and the values 
every thing are correct

so I decide to insert static data like the following :

  db_insert('payment_request')
    -&gt;fields(array(
      'payment_item' =&gt; 'qq',
      'change' =&gt; 'qq',
      'via' =&gt; 'qq',
      'userlist' =&gt; 'qq',
      'startdate' =&gt; 'qq',
      'enddate' =&gt; 'qq',  
      'hash' =&gt; 'qq'   
    ))-&gt;execute();


But it gives me the same error 
so, what i miss here, please help me
CHANGE is a reserved word in MySQL. PDO doesn't have a built-in function for quoting identifiers (just string literals and dates), so presumably Drupal simply hasn't tried to implement this on PDO's behalf.

Using a different column name would be the simplest solution.