【发布时间】:2016-01-26 12:01:24
【问题描述】:
我在一个函数中创建了一个 DB 查询,它的视图返回一个数组,我以后可以在多个实例中使用该数组。
但是,当我调用该函数时,它返回的是一个对象(“事件对象([数据库] => mysqli 对象”),而不是我计划的数组。
我知道查询的工作方式就像函数本身中的 'print_r($events)' 而不是 'return $events' 我可以按预期看到所有结果信息。
public function get_events()
{
$stmt = $this->Database->prepare("SELECT 'id', `title`, `event_desc`, `date`, `time`, `location`, `spots`, `event_city`, `event_spots_available`, `event_series` FROM `events` ORDER BY `date` ASC");
$stmt->execute();
$events = array();
/* bind variables to prepared statement */
$stmt->bind_result($col1, $col2, $col3, $col4, $col5, $col6, $col7, $col8, $col9, $col10);
/* fetch values */
while ($stmt->fetch())
{
$events[] = array(
'event_id' => $col1,
'event_title' => $col2,
'event_desc' => $col3,
'event_date' => $col4,
'event_time' => $col5,
'event_location' => $col6,
'event_spots' => $col7,
'event_city' => $col8,
'event_spots_available' => $col9,
'event_series' => $col10
);
}
$stmt->close();
return $events;
}
}
请指教我的错误?
【问题讨论】:
-
如果你有一个数据库查询,结果总是一个对象。如果要使用此对象,可以将结果作为数组或每一行作为一个数组单独获取。 php.net/manual/de/mysqli-result.fetch-array.php 这应该会有所帮助。如果你愿意,我可以给你一个“查询结果”的例子,以及如何将它转换成一个数组(整个工作例子)让我知道这是否是你需要的。
-
id周围的引号不正确,应该是SELECT `id`, `title`, ... -
请检查此 print_r($events) 可分配的事件中的内容;
标签: php arrays database mysqli