0

ezSQLのように各行をオブジェクトとして取得することは可能ですか?たとえば、ezSQLは次のように返します(print_r($ sql):

Array (
    [0] => stdClass Object (
        [click_time] => 2011-09-12 17:30:06
        [referrer] => direct
        [user_agent] => Mozilla/5.0
        [country_code] => EN
    )
    [1] => stdClass Object (
        [click_time] => 2011-09-14 23:45:35
        [referrer] => direct
        [user_agent] => Mozilla/5.0
        [country_code] => EN
    )
)

しかし、adodbでそれを行う方法は?

4

1 に答える 1

0

ADODB はオブジェクトではなくリソースを使用するため、オブジェクトを自分で構築する必要があります。

ADODB と対話するために使用しているバージョンまたは関数がわからない場合、これは基本的な考え方にすぎず、フィールドに関する事前の知識が必要です (リソース自体からフィールド リストを取得しない限り、通常は可能です)。

$_GET['id'] = check_input($_GET['id']);
$query1 = "SELECT * FROM stats WHERE shorturl='{$_GET['id']}'";
$result1 = $myDB->Execute($query1) or die(GetDbError($myDB->ErrorMsg()));

$fields = array('click_time', 'referrer', 'user_agent', 'country_code', ...);
$obj = new stdClass;
foreach($fields as $field) $obj->$field = $result1->Fields($field);

これが行うことは、オブジェクトを作成し、そのオブジェクトにメンバ変数を作成し (データベースのフィールド名で命名)、そのメンバ変数をそのデータベース フィールドに返される値に設定することです。

于 2011-09-17T16:40:50.693 に答える