我正在尝试从存储过程中声明的字符串中获取值,以便我可以在我的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;
在程序中,它仍然给出相同的结果。