运行代码时MySQL函数中的语法错误

时间:2016-04-02 15:34:15

标签: php mysql function phpmyadmin

我收到此错误:

  

#1064 - 您的SQL语法出错;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第4行

当我运行跟随phpmyadmin中的代码时,在第二个声明表达式旁边出现此错误:

  

无法识别的陈述类型(近声明)

导致这些错误的原因是什么? (Phpmyadmin,版本等)

create function fnc_generate_url(title_in varchar(250))
    returns varchar(250)
        begin
            declare v_count int; 
            declare v_return varchar(250);
            declare cr_count cursor
            for
                select count(1) from tbl_page where page_title like concat('%',title_in,'%');

            open cr_count;
                fetch cr_count into v_count;
            close cr_count;

            if v_count = 0 then
                set v_return = replace(trim(title_in), ' ', '-');
            else
                set v_return =  concat(replace(trim(title_in), ' ', '-'),'-',v_count);
            end if;

            return v_return;
        end;

1 个答案:

答案 0 :(得分:0)

如果我们使用分隔符,则工作正常。

试试这个:

DELIMITER $$
create function fnc_generate_url(title_in varchar(250))
    returns varchar(250)
        begin
            declare v_count int; 
            declare v_return varchar(250);
            declare cr_count cursor
            for
                select count(1) from tbl_page where page_title like concat('%',title_in,'%');

            open cr_count;
                fetch cr_count into v_count;
            close cr_count;

            if v_count = 0 then
                set v_return = replace(trim(title_in), ' ', '-');
            else
                set v_return =  concat(replace(trim(title_in), ' ', '-'),'-',v_count);
            end if;

            return v_return;
        end;
$$
DELIMITER ;