PHP - 无法获取MySQL存储过程OUT参数

时间:2013-11-29 00:44:24

标签: php mysql procedure

我正在尝试从存储过程中声明的字符串中获取值,以便我可以在我的PHP代码中使用它。 程序:

DELIMITER //
    CREATE PROCEDURE InsertName
    (IN NewName varchar(50), OUT NewID char(25))
    BEGIN
        DECLARE NewID CHAR(25) DEFAULT (SELECT CONCAT((SELECT unix_timestamp()), (SELECT FLOOR(RAND() * 1000000000000000))));

        INSERT INTO User
        VALUES (NewID, NewName);

    END;    
//
DELIMITER ; 

调用该过程的PHP代码:

$name = $_POST['name'];

$sth = $pdo->prepare("CALL InsertName('$name', @idcode)");
$sth->execute();
$sth->closeCursor();

$sth = $pdo->query("SELECT @idcode AS idcode");
$newid = $sth->fetch(PDO::FETCH_ASSOC);
$idcode=$newid['idcode'];
echo $idcode . " blarg";

我试图显示的页面只显示“blarg”,没有别的。获取OUT参数时出错。我也试过

SELECT NewID;

在程序中,它仍然给出相同的结果。

0 个答案:

没有答案