Php 存储过程不使用PDO语句返回记录

Php 存储过程不使用PDO语句返回记录,php,mysql,stored-procedures,pdo,Php,Mysql,Stored Procedures,Pdo,刚开始研究存储过程,但不确定我是否完全没有理解它们。。。这里有一个简单的例子,我正在尝试使用它,但它没有输出任何内容: CREATE procedure testprocedure (userID INT) DETERMINISTIC COMMENT "Test procedure" BEGIN SELECT * FROM user WHERE ID=userID; END Php: 只输出array() 但是,如果我在Workbench中使用testprocedure(1),它将

刚开始研究存储过程,但不确定我是否完全没有理解它们。。。这里有一个简单的例子,我正在尝试使用它,但它没有输出任何内容:

CREATE procedure testprocedure (userID INT)
DETERMINISTIC
COMMENT "Test procedure"
BEGIN
    SELECT * FROM user WHERE ID=userID;
END
Php:


只输出
array()

但是,如果我在Workbench中使用testprocedure(1),它将返回一行


感谢任何帮助:D

是我太愚蠢了

我用来调用存储过程的用户没有“执行”权限

就这么简单,哈哈


好的一面是,我还有三分之一的头发留着

以备将来堵塞时用:
<?php
    include 'dbconnect.php';
    $stmt = $db->prepare("CALL testprocedure(:userid)");
    $stmt->bindValue(':userid',1,PDO::PARAM_INT);
    $stmt->execute();
    $row=$stmt->fetchAll(PDO::FETCH_ASSOC);
    print_r($row);
?>