PDO不返回对象,而是返回数组

时间:2014-08-04 01:38:35

标签: php pdo

使用以下代码,PDO不会将$ parcel作为对象返回,而是作为数组返回。当我尝试调用我的对象函数时,它将失败。我发现的每个例子都以与我相似的方式完成了这个。我做错了什么?

    $statement = $this->connection->query($query);

    $statement->setFetchMode(PDO::FETCH_CLASS, 'Parcel');

    while ($parcel = $statement->fetch()) {
        echo $parcel->hello();
    }

Parcel课程,如果有兴趣的话。

class Parcel {
public $id;
public $parcel_number;
public $registred_at;
public $shipped_by;
public $shipped_at;

function __construct($parcel_number)
{
    $this->parcel_number = $parcel_number;
}

public function hello(){
    return "World";
}
}

我使用文件夹结构来构造代码和自动加载器,这可能会影响PDO调用对象的方式。

虽然这是错误代码

Call to a member function info() on a non-object

1 个答案:

答案 0 :(得分:1)

此错误表示对象为null或未正确实例化,您可能需要指定类的完整路径。

例如

$statement->setFetchMode(PDO::FETCH_CLASS, 'app\model\Parcel');