1

当结果限制为 1 时,一切正常。

但是,当我有超过 1 个结果时......它不会返回任何内容。

$output = $conn->multi_query("CALL `test_discount`('022979', 1101, 1, 'W', 100, @out); SELECT @out AS `discount`;");

if ($output == true){
    while($conn->next_result()){
        $result = $conn->store_result();
            while ($row = $result->fetch_assoc()){
                print_r($row);
                break;
            }                   
    if($conn->more_results() == false) { break; };
    }
}

我猜我做错了什么?

4

1 回答 1

1

如果上面的 SQL 有意义,那么我建议先获取过程返回的数据,然后选择那个流浪的 @out 变量。

$sql = "CALL `test_discount`('022979', 1101, 1, 'W', 100, @out)";
$res = $conn->multi_query($sql);
do {
    if ($res = $mysqli->store_result()) {
        foreach ($res as $row) {
            print_r($row);
        }
    }
} while ($mysqli->more_results() && $mysqli->next_result());

$out = $conn->query("SELECT @out")->fetch_row[0];
于 2018-03-06T07:18:57.343 回答