PDO不接收称为sp的表格式

时间:2019-02-08 13:37:11

标签: php mysql

我是PDO和PHP的新手。
我写了一个SP来从mariaDB中获取日志条目。
如果我直接在phpMyAdmin中调用该过程,则一切正常。
但是在PHP中使用PDO不会得到任何行。

  $sql = "SET @p0='".$name1."'; "
    . "SET @p1='".$name2."'; "
    . "SET @p2='".$pid."'; "
    . "SET @p3='".$log_class."'; "
    . "CALL `show_log_filter`(@p0, @p1, @p2, @p3);";

try
{
    foreach ($pdo->query($sql) as $row)
    {
        echo "<tr><td>".$row['log_id']."</td></tr>";
        //more echos...
    }

} catch (PDOException  $ex) {
    echo "<p>".$ex->getMessage()."</p>";
}

我在项目中多次这样做,但是在这种情况下不起作用。
有什么建议吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

此外,如果您的数据库驱动程序支持它,那么您还可以绑定用于输出和输入的参数

$stmt = $dbh->prepare("CALL sp_returns_something(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000); 
$stmt->execute(); // call the stored procedure
print "procedure returned $return_value\n";