等效于预处理语句中的mysqli_fetch_row


Equivalent for mysqli_fetch_row in prepared statement

$link = mysqli_connect("localhost", "root", "", "db");
                    $stmt = mysqli_prepare($link, "Call breakup_api(@inno)");                            
                    mysqli_stmt_execute($stmt);                        
                    $result = mysqli_query($link,'SELECT @inno');
                    $output = mysqli_fetch_row($result);
                    mysqli_free_result($result);                                                
                    var_dump($output);

以上是一个在 php 中调用存储过程的函数。我能够使用上述代码执行该过程,我正在尝试使用准备好的语句转换上述内容,但无法像上面的代码那样获得输出。有人可以告诉我在使用预准备语句时 mysqli_fetch_row($result( 的等价物是什么。

$db = new dbConnect();
$this->conn = $db->connect();                          
$stmt = $this->conn->prepare("Call breakup_api(@inno);SELECT @inno;");                                                    
$stmt->execute();                          
$stmt->close();

使用 mysqli_stmt::fetch

$query = "Call breakup_api";// if params  -> Call breakup_api ?, ?, ?
if ($stmt = $this->conn->prepare($query)) {
    /* execute statement */
    $stmt->execute();
    /* bind result variables */
    $stmt->bind_result($inno);
    /* fetch values */
    while ($stmt->fetch()) {
        printf ("%s (%s)'n", $inno);
    }
    /* close statement */
    $stmt->close();
}

PDO不能一次运行多个查询,因此SELECT @inno移动到存储过程内部。