我如何在AdoDB中调用存储过程& MySQL的?

时间:2012-08-01 13:15:00

标签: php mysql adodb

  

MySQL程序

DELIMITER $$
DROP procedure `verifica_nf` $$
CREATE PROCEDURE `verifica_nf` (IN _id_servidor_val BIGINT, IN _nr_periodo_val INT)

BEGIN

DECLARE nota INT;
DECLARE falta INT;

-- Declare variables used just for cursor and loop control
DECLARE no_more_rows BOOLEAN;
DECLARE loop_cntr INT DEFAULT 0;
DECLARE num_rows INT DEFAULT 0;

-- CURSOR--

DECLARE NF_CUR CURSOR FOR 
    -- //////////////////////////////////////////////////////////////// --
    -- // VERIFICA SE E PERIODO ATIVO                                // --
    -- //////////////////////////////////////////////////////////////// --
    SELECT 
    DISTINCT 
    a.nr_notafinal,
    cr.nr_faltas
    FROM 
    pmc_servidor s
    INNER JOIN pat_avaliacao a ON s.id_servidor  = a.id_servidor       
    INNER JOIN pat_avaliacaoetapa ae ON a.id_avaliacao = ae.id_avaliacao  
    INNER JOIN pat_cronograma cr ON s.id_servidor = cr.id_servidor        
    AND cr.nr_periodo = a.nr_periodo
    WHERE 
    s.id_servidor = _id_servidor_val  AND 
    a.nr_periodo  = _nr_periodo_val;

-- Declare 'handlers' for exceptions
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_rows = TRUE;

OPEN NF_CUR;

the_loop: LOOP

    FETCH  NF_CUR INTO nota,  falta;

    IF no_more_rows THEN 
        LEAVE the_loop;
    END IF;

SELECT nota, falta;

  END LOOP the_loop;

END;

$$
  

PHP脚本

<?php
require_once("inc/con.php");

$db = ADONewConnection('mysqli');
$db->debug=1;
$db->PConnect("localhost","root","xxxxx","database");

$id = '1197614';
$period = 1;

$stmt = "CALL verifica_nf('$id','$periodo')";

$rs = $db->Execute($stmt);

echo $rs;
?>

PHP脚本返回数据库变量的 nota falta 值,但也返回名称 数据库变量。像这样:

(mysqli):CALL verifica_nf('1197614','1')
nota,falta 10000,1

如何获取PHP变量中的值?

0 个答案:

没有答案