PDO执行MSSQL存储过程无法获取输出参数

时间:2020-12-03 19:24:21
PDO执行MSSQL存储过程无法获取PARAM_INPUT_OUTPUT输出参数?
有哪位高手有碰到这个问题,请指教!在此先谢谢了!

5 个解决方案

#1


需要在存储过程创建语法中声明传参是out参数才能获取到返回值

#2


引用 楼主 enablefzm 的回复:
PDO执行MSSQL存储过程无法获取PARAM_INPUT_OUTPUT输出参数?
有哪位高手有碰到这个问题,请指教!在此先谢谢了!

谢谢您的答复,我在MSSQL里的存储过程里有声名传入参数为OUT,及使用.net环境下访问该存储过程是没问题的。

#3


需要用 PDOStatement::nextRowset 遍历结果集
手册中的示例代码
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO_FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}

#4


引用 3 楼 xuzuning 的回复:
需要用 PDOStatement::nextRowset 遍历结果集
手册中的示例代码
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO_FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}


谢谢版主答复!测试还是不行,现改为.net,看来微软的东西确实是不太好用!

#5


把你需要返回的参数select 出来就好

#1


需要在存储过程创建语法中声明传参是out参数才能获取到返回值

#2


引用 楼主 enablefzm 的回复:
PDO执行MSSQL存储过程无法获取PARAM_INPUT_OUTPUT输出参数?
有哪位高手有碰到这个问题,请指教!在此先谢谢了!

谢谢您的答复,我在MSSQL里的存储过程里有声名传入参数为OUT,及使用.net环境下访问该存储过程是没问题的。

#3


需要用 PDOStatement::nextRowset 遍历结果集
手册中的示例代码
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO_FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}

#4


引用 3 楼 xuzuning 的回复:
需要用 PDOStatement::nextRowset 遍历结果集
手册中的示例代码
$sql = 'CALL multiple_rowsets()';
$stmt = $conn->query($sql);
$i = 1;
do {
    $rowset = $stmt->fetchAll(PDO_FETCH_NUM);
    if ($rowset) {
        printResultSet($rowset, $i);
    }
    $i++;
} while ($stmt->nextRowset());

function printResultSet(&$rowset, $i) {
    print "Result set $i:\n";
    foreach ($rowset as $row) {
        foreach ($row as $col) {
            print $col . "\t";
        }
        print "\n";
    }
    print "\n";
}


谢谢版主答复!测试还是不行,现改为.net,看来微软的东西确实是不太好用!

#5


把你需要返回的参数select 出来就好