每一行都是adodb中的一个对象?

时间:2011-09-17 16:07:54

标签: php adodb ezsql

有可能像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中做到这一点?

1 个答案:

答案 0 :(得分:0)

ADODB使用resources而不是对象,因此您必须自己构建对象。

不知道您使用什么版本或功能与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);

这样做是创建一个对象,在该对象中创建一个成员变量(用数据库中的字段名称命名),并将该成员变量设置为为该数据库字段返回的值。