有这样一个mysql存储过程 :  create procedure in_out(in uid int,out msg varchar(10)) begin   select * from manage_loginhistory where h_uid=uid;   set msg='hello';
  
   end; 
      有2个参数    存储过程返回一个结果集 与 @msg   php 该如何调用才能2个结果都能得到呢???

解决方案 »

  1.   

    http://blog.csdn.net/jxncwzb/archive/2009/11/13/4807991.aspx
      

  2.   

    只能先 call procedure (123,@x) 
    然后再执行 select @x;取得这个返回值。
      

  3.   

        $rs = mysql_query("call in_out(19,@msg)");    $result=mysql_fetch_array($rs);    var_dump($result);    这样写得不到@msg的值
     ---------------------------------------------    mysql_query("call in_out(19,@msg)");
        
        $rs=mysql_query("select @msg");    var_dump($rs); 结果为false  但@msg确实是有值  到底该如何解决!!求救
       
      

  4.   

    CREATE DEFINER=`root`@`%` PROCEDURE `SIMPLEPROC`(
           IN USER_ID INT,
           IN STEP INT,
           INOUT CPIC_ID INT,
           OUT FILENAME VARCHAR(100)
           )
    BEGIN
    SET @TYPER = CONCAT('TYPER', STEP);
    SET @STATE = CONCAT('STATE', STEP);

    SET @SQL=CONCAT('UPDATE ', @T, ' SET ',
     @TYPER, '=', USER_ID, ',', @STATE, '=1 WHERE PIC_ID>=', CPIC_ID,
     ' AND ', @STATE, '=0 LIMIT 1;');


    PREPARE STMT1 FROM @SQL;
    EXECUTE STMT1;
    DEALLOCATE PREPARE STMT1;


    SET @SQL = CONCAT('SELECT  CPIC_ID = `PIC_ID`, FILENAME = `PICNAME` FROM `STATE` WHERE ',
     @TYPER, '=', USER_ID, ' AND ', @STATE, '=1 LIMIT 1');

        SELECT @SQL;
            
      
        PREPARE STMT2 FROM @SQL;
        EXECUTE STMT2;
        DEALLOCATE PREPARE STMT2;
     
    END;
    这段也无法得到输出参数!!!
      

  5.   

    1:CALL in_out(1,@A);
    2:SELECT @A;