【发布时间】:2014-04-05 18:05:23
【问题描述】:
在我的代码中,我正在执行如下所示的语句:
$welcomeMsg = $result->fetchall(PDO::FETCH_ASSOC);
当我回显 $welcomeMsg 时,我得到了 Array。
然而,这本质上是一个为检索字符串而执行的查询。如何格式化它以便在数组中显示字符串?
【问题讨论】:
-
数组长什么样? (您可以使用
var_dump显示有关其结构和内容的信息)。 -
fetchall(应该是fetchAll())返回一个数组,而不是一个字符串。它返回一个由 所有 找到的行组成的数组。参数 (PDO::FETCH_ASSOC) 告诉它为每一行返回什么样的数组,在你的例子中是一个关联数组。$welcomeMsg实际上是一个二维数组。它看起来像这样:[['field'=>'value'],['field'=>'value2']]。您需要遍历$welcomeMsg并获取每一行的字段。如果只返回一行,不要使用fetchAll,使用fetch()。 -
@RocketHazmat,为什么不使用'fetchAll''的微效率,因为你知道只会返回一行?即不做'fetchAll'有什么好处?是否有时间证明值得做 'fetch' 而不是 'fetchAll'?我很好奇而不是“尴尬”。
-
@RyanVincent:我不担心效率,我想帮助一个看起来很困惑的用户。我认为
fetch()对他来说可能更容易。 -
@RocketHazmat,有道理。我误解了您要解释的内容。