Php 对MYSQL存储过程调用成员函数fetchAll()
我试图执行存储过程,我希望输出为关联数组,但我得到以下错误 对布尔值上的成员函数fetchAll()的调用 下面是我调用这个过程的PHP脚本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
$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()