0

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

//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()

获取对象()

$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;

取列()

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

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

如果可能的话,你们能否就如何检索查询中选择的所有列并将其存储到代码行更少的数组中提出最佳方法(如果有的话)。

4

2 回答 2

1

我不知道使用它的利弊。在我的项目中,我经常使用获取数组而不是对象。它更舒服。但是,如果您制作 ORM 项目,那么使用 fetchObject 并使其成为您的对象而不是 std_class 可能会更好。您可以创建一个具有一个参数的构造器,即 stdClass 并从此类中创建您的对象

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

按照此链接了解有关此功能的更多信息http://www.php.net/manual/en/pdostatement.fetchall.php

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

于 2013-04-03T09:41:34.930 回答
1

有两种方法可以获取数据,即使用 fetchColumn() 和 fetchObject()

真的吗?怎么样fetch()

有一个PDO 标签 wiki,您可以在其中找到所需的一切

于 2013-04-03T09:52:37.483 回答