php函数导致sql查询失败

时间:2013-06-27 12:23:21

标签: php sql function db2

所以我发现当使用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:"并且没有错误。

1 个答案:

答案 0 :(得分:2)

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

传递变量

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

echo getRooms($conn);

使用全球

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

echo getRooms();