-2
我有一个烦人的问题,无论我告诉PDO
返回一个数组或对象,它总是将它放入另一个数组中。即:PDO fetchAll返回数组中数组或数组中的对象
Array (
[0] => stdClass Object ([name] => Test Topper [urlName] => test-topper)
[1] => stdClass Object ([name] => Test Topper [urlName] => test-topper)
[2] => stdClass Object ([name] => adfg dfg [urlName] => adfg-dfg)
[3] => stdClass Object ([name] => adfg dfg [urlName] => adfg-dfg)
)
如何停止这种行为,所以我结束了:
stdClass Object ([name] => Test Topper [urlName] => test-topper)
[1] => stdClass Object ([name] => Test Topper [urlName] => test-topper)
[2] => stdClass Object ([name] => adfg dfg [urlName] => adfg-dfg)
[3] => stdClass Object ([name] => adfg dfg [urlName] => adfg-dfg)
这样我就可以使用$data->name
代替$data[0]->name
访问属性?
这里是PHP负责获取数据:
public function fetchToppersAction($type, $orderBy, $limit)
{
$PDOParams = array() ;
$SQL = 'SELECT name, urlName FROM toppers_images, toppers
LEFT JOIN meta_descriptions AS md ON md.topperId = toppers.id
' ;
if($type)
{
$SQL .= 'WHERE typeId = ?' ;
array_push($PDOParams, $type) ;
}
$SQL .= 'ORDER BY ? LIMIT ?' ;
array_push($PDOParams, $orderBy, $limit) ;
$r = $this->db->prepare($SQL) ;
$r->execute($PDOParams) ;
return $r->fetchAll(PDO::FETCH_OBJ) ;
}
你叫'使用fetchall()'返回阵列(或物体)的阵列,因为它是期待返回多行。如果你知道你只有一行你想要返回,或者使用'fetch()'来代替(敏感选项),或者执行'current($ r-> fetchAll())'(有点傻,但它会起作用) – DaveRandom
请审查你的问题。即使这已经被同行编辑了,它仍然不能理解你正在寻找什么,因为你给的例子**在PHP **中是不可能的。 – hakre