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 に答える