问题描述
|
无法在这里找出问题所在:
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
}
得到这个错误:
发生数据库错误
错误号:1064
您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在\'index,tree_name,tree_desc,tree_id附近使用正确的语法)VALUES(NULL,\'TEST \',\'TEST \',\'TEST \')\ '在第1行
我在另一个项目上使用过类似的代码,但效果很好。使用MAMP在本地服务器上运行。感谢您的任何帮助,您可以提供。
解决方法
索引是mysql中的保留字。您需要将反引号放在列名周围,例如`index`,`tree_name`等。
, 索引是mysql中的一个受保护的单词。将`index`与反引号一起使用。
受保护的单词是在将其称为字段时必须在查询中转义的单词。完整列表在这里
, 这是一个MySQL错误,它的发生是因为您的\'trees \'表在\'index \'列中使用了保留字。
您可以在列名周围添加`index`反引号-甚至更好:将\'index \'列名更改为\'id \'或类似名称。
有关MySQL中保留字的列表,请参见:
http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html