查询在phpmyadmin中运行,但不在codeigniter模型中运行

时间:2012-08-13 10:04:24

标签: php mysql codeigniter

我正在运行以下查询:

SELECT @newNo := MAX( category_code ) FROM category_master;
INSERT INTO category_master VALUES (@newNo +1,  'Test')

查询在phpmyadmin中运行完美但在使用codeigniter运行时显示数据库错误:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第2行'INSERT INTO category_master VALUES(@ newNo + 1,'Test')'附近

可能是什么原因? 在codeigniter模型中,我使用以下代码:

$query = 'SELECT @newNo := MAX(category_code) FROM category_master;
                    INSERT INTO category_master VALUES(@newNo+1, 
                    \''.$category_name.'\')';
$result = $this -> db -> query($query);

2 个答案:

答案 0 :(得分:4)

您不能一次运行两个查询。分开他们:

$query = 'SELECT @newNo := MAX(category_code) FROM category_master';
$result = $this->db->query($query);

$query = 'INSERT INTO category_master VALUES(@newNo+1, \''.$category_name.'\')';
$result = $this->db->query($query);

编辑: 在第二次查询时,建议使用查询绑定:

$query = 'INSERT INTO category_master VALUES(@newNo+1, ?)';
$result = $this->db->query($query, $category_name);

答案 1 :(得分:0)

确保查询不包含任何特殊字符。浏览器将转换特殊字符,因此查询在phpmyadmin中运行。 要知道特殊字符,回显查询并将其复制并粘贴到像Dreamweaver这样的编辑器中,它会显示特殊字符。希望这会有所帮助。