PDO fetchColumn()和fetchObject()这是更好和正确的用法

时间:2013-04-03 09:32:23

标签: pdo

这一直困扰着我,我有一个返回单行的查询,我需要获取相应的列值。

//Retrieve Ticket Information to Database
$r = db_query("SELECT title, description, terms_cond, image, social_status, sched_stat FROM giveaway_table WHERE ticket_id = :ticket_id",
    array(
        ':ticket_id' => $ticket_id
));

我可以通过两种方式获取数据: fetchColumn() fetchObject()

fetchObject()

$object = $r->fetchObject();

$ticket_info[] = $object->title;
$ticket_info[] = $object->description;
$ticket_info[] = $object->terms_cond;
$ticket_info[] = $object->image;
$ticket_info[] = $object->social_status;
$ticket_info[] = $object->sched_stat;

fetchColumn()

$title = $r->fetchColumn() //Returns title column value
$description = $r->fetchColumn(1) //Returns description column value

想知道哪一个更好,或者这个东西有什么优缺点?

如果可能,你们是否也可以建议最佳方式(如果有的话)如何检索在查询中选择的所有列并将其存储到使用较少代码行的数组。

2 个答案:

答案 0 :(得分:1)

我不知道使用它的利弊。在我的项目中,我经常使用提取作为数组而不是对象。它更舒服。但是如果你制作ORM项目那么也许最好使用fetchObject并使它成为你的对象而不是std_class。你可以创建一个具有一个参数strClass的构造函数,并从这个类中创建你的对象

回答您的其他问题,您可以使用fetchAll()获取所有列;

点击此链接,详细了解此功能http://www.php.net/manual/en/pdostatement.fetchall.php

您可以在此处找到有关抽象数据库图层的更多信息 - > http://www.doctrine-project.org/

答案 1 :(得分:1)

  

我可以通过两种方式获取数据,即使用fetchColumn()和fetchObject()

真的?怎么样fetch()

有一个PDO tag wiki,您可以找到所需的一切