为什么调用存储过程不会返回任何内容?

时间:2015-01-11 09:37:45

标签: mysql stored-procedures phpmyadmin

我用in参数创建了一个存储过程。当我调用此过程没有错误时,没有向我显示结果。这段代码有什么问题?

 drop PROCEDURE if exists `getUsersByContact`;

 delimiter $$
 Create PROCEDURE `getUsersByContact`(
   IN contact1 VARCHAR(10)
 )
 BEGIN
     SELECT id,name FROM tbl_user WHERE contact = contact1;
END $$
delimiter ;

当我这样打电话时

 call getUsersByContact('9999999999');

它不返回任何行,并且phpmyadmin中没有显示错误。但是,当我使用out参数并调用存储过程并选择该变量时,它工作正常。我还尝试了this linkthis link

2 个答案:

答案 0 :(得分:0)

在SP内部运行查询时, 这个会工作!!

 SELECT id,name
  FROM tbl_user 
  WHERE contact = `contactname`;

但是这个不起作用。

SELECT id,name
 FROM tbl_user
 WHERE contact = contact1;

您可以在此处找到原因:http://mysqldb.bigresource.com/SELECT-INTO-returns-null-in-Stored-Procedure-Jx95y6IPJ.html

答案 1 :(得分:0)

我正在添加我的答案,相信它可能对其他人有用。

我正在努力解决同样的问题但是当我在mysqlworkbench中调用这个程序时,它就像一个魅力。所以这可能是一个phpmyadmin的问题,如@a_horse_with_no_name建议。