在MYSQL存储过程上调用成员函数fetchAll()

时间:2015-06-16 12:27:51

标签: php mysql stored-procedures

我正在尝试执行存储过程,我希望将输出作为关联数组,但我收到了以下错误。

  

在布尔值

上调用成员函数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 个答案:

答案 0 :(得分:1)

如果procedure1有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);
}