2014-12-08 55 views
0

我试图创建一个包含书籍信息(标题,作者,出版商等)的字符串并将该数据插入到多个表中的过程。具有不编码的许多这些我试图做一块程序块,并得到了这一点:在编写存储过程在mysql中定位时遇到问题

create procedure AddBook(in details varchar(255), 
out new_title varchar(255), 
out new_author varchar(255), 
out new_pname varchar(255), 
out new_paddress varchar(255), 
out new_pphone char(10), 
out my_index int) 
begin 
    Declare title varchar(255); 
    Declare author varchar(255); 
    Declare pname varchar(255); 
    Declare paddress varchar(255); 
    Declare pphone char(10); 
    Declare curIndex int; 
    Declare bid int; 
    Declare temp varchar(255); 

    set details = trim(details); 

    set curIndex = locate(',', details); 
    set title = substring(details, 1, curIndex - 1); 

    set temp = substring_index(details, ',', 2); 
    set author = substring(temp, locate(temp, ',', 1) + 1); 

最后一行是我卡住了。无论出于何种原因,即使我知道temp中有一个逗号,locate也返回0。我的输入是

call AddBook('my book, George Foreman, pub4, 189, 1234567890', @title, @author, @pname, @paddress, @pphone, @index); 

所有out变量用于调试,稍后将被删除。我发现温度以“我的书,乔治福尔曼”的价值结束,但找到找不到逗号(有或没有第三个参数。是否有东西我失踪?

回答

0

它始终是简单的错误,找到我,找到你想要先找到的子字符串,然后接下来想要搜索的字符串,我错误地传入了参数