2

所以我发现当使用 db2 sql 在 php 函数中时,它不会返回任何值。

它失败了DB2_PREPARE($conn, $sql2);

就好像您在函数之外执行此代码一样,它可以完美地完成其工作并返回所有结果。

代码:

        function getRooms(){
            $sql2 = ("SELECT * FROM WS_ASSETS_rooms");
                    $stmt2 = db2_prepare($conn, $sql2);
                     if ($stmt2) {
                            $result2 = db2_execute($stmt2);
                            if (!$result2) {
                                     return "exec errormsg: " .db2_stmt_errormsg($stmt2);
                            }

                            while ($row = db2_fetch_array($stmt2)) {
                                    echo "$row[1]";
                            }
                    } else {
                            return "exec errormsg: " .db2_stmt_errormsg($stmt2);
                    }
};
    echo getRooms();

这返回"exec errormsg:"并且没有错误。

4

1 回答 1

2

$conn不在范围内。您必须将变量传递给函数(推荐)或使用global关键字。

传递变量

function getRooms($conn){
    // ...
}

echo getRooms($conn);

使用全局

function getRooms(){
    global $conn;
    // ...
}

echo getRooms();
于 2013-06-27T12:48:27.407 回答