Php 对MYSQL存储过程调用成员函数fetchAll()

Php 对MYSQL存储过程调用成员函数fetchAll(),php,mysql,stored-procedures,Php,Mysql,Stored Procedures,我试图执行存储过程,我希望输出为关联数组,但我得到以下错误 对布尔值上的成员函数fetchAll()的调用 下面是我调用这个过程的PHP脚本 $query_text = "CALL procedure1(?,?,@mobNum,@firstInsert);"; $output=$this->pdo->prepare($query_text); $output=$output->execute(array($number,$code

我试图执行存储过程,我希望输出为关联数组,但我得到以下错误

对布尔值上的成员函数fetchAll()的调用

下面是我调用这个过程的PHP脚本

        $query_text = "CALL procedure1(?,?,@mobNum,@firstInsert);";
        $output=$this->pdo->prepare($query_text);
        $output=$output->execute(array($number,$code));
print_r($output->fetchAll(PDO::FETCH_ASSOC));

如果您的
程序1
有4个参数,您应该:

$query_text = "CALL procedure1(?,?, @mobNum, @firstInsert);";
$stmt = $this->pdo->prepare($query_text);
$stmt->bindParam(1,$number);
$stmt->bindParam(2,$code);
$result = $stmt->execute();
print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
如果仅2,则将第一行更改为
$query_text=“CALL procedure1(?);”然后

编辑如果仍然存在错误,请尝试处理sql错误:

if ($result) {
    print_r($stmt->fetchAll(PDO::FETCH_ASSOC));
} else {
    echo "\nPDOStatement::errorInfo():\n";
    $arr = $stmt->errorInfo();
    print_r($arr);
}

错误告诉您,查询不起作用,因此您的
$output
为false。错误仍然告诉您相同的信息:获取崩溃导致您尝试获取查询不起作用的内容
$output
为false,不是mysql结果。您应该捕捉到这一点,或者检查查询不起作用的原因。您的函数有多少个参数
procedure1
?2或4?i致命错误:在null上调用成员函数fetchAll(),这是我现在得到的检查更新的答案。您应该
$stmt->fetchAll()
而不是
$result->fetchAll()