用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2510|回复: 2
收起左侧

[HELP] 执行sql返回Error Number: 1064

[复制链接]
发表于 2011-8-9 00:37:42 | 显示全部楼层 |阅读模式
本帖最后由 ci_user 于 2011-8-9 09:29 编辑

大家好,我是纯粹新手
我使用以下语句
PHP复制代码
$sql = " SELECT @maxorder := CASE WHEN  MAX(displayorder) IS NULL THEN 0 ELSE MAX(displayorder) END
                                FROM activitycategory
                                WHERE parentcategoryid = ?;  
                                INSERT INTO activitycategory(categoryname, parentcategoryid, status, displayorder)
                                VALUES (?, ?, 1, @maxorder +1) "
;
       
                $this->db->query($sql, array($parentcategoryid, $categoryname, $parentcategoryid));
复制代码

返回错误是:

A Database Error OccurredError 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 ' INSERT INTO activitycategory(categoryname, parentcategoryid, status, dis' at line 3
SELECT @maxorder := CASE WHEN MAX(displayorder) IS NULL THEN 0 ELSE MAX(displayorder) END FROM activitycategory WHERE parentcategoryid = 24, INSERT INTO activitycategory(categoryname, parentcategoryid, status, displayorder) VALUES ('test3', 24, 1, @maxorder +1)
Filename: D:\wamp\www\system\database\DB_driver.php
Line Number: 330

我把上面的sql单独放在mysql中执行可以成功,请求高手帮助,谢谢


发表于 2011-8-9 09:01:07 | 显示全部楼层
这是什么sql语法啊···
看不懂啊··
 楼主| 发表于 2011-8-9 09:13:41 | 显示全部楼层
简单来说,取一个表中最大的displayorder赋给变量@maxorder,然后在这个表中插入一条新数据,displayorder = @maxorder+ 1

可ci就是不成功啊不成功

本版积分规则