2012-08-13 74 views
1

我运行下面的查询:查询在phpMyAdmin运行而不是在笨模型

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

查询完美地运行在phpMyAdmin的,但它显示了运行使用笨当数据库错误:

你在您的SQL语法中有错误;检查手册中 对应于你的MySQL服务器版本正确的语法使用 附近“INSERT INTO category_master VALUES(@ newNo + 1,‘测试’)”第2行

可能是什么原因? ? 在笨模型我使用下面的代码:

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

回答

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); 
+0

它的作品..! 谢谢:D – techish 2012-08-13 10:10:02

+0

好吧..会使用查询绑定..再次感谢.. :-) – techish 2012-08-13 10:28:53

0

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