0

我怎么会这样做:

<?php
$pdo  = new PDO("mysql:host=xxx;dbname=xxx", "xxx", "xxx");
$sql  = $pdo->query("call GetFromCoords($lat, $lng)");

$sql  = $pdo->query("call GetInRadius($zip, $dist)");
$rows = $sql->fetchAll(PDO::FETCH_ASSOC);

我收到此错误:

致命错误:在第 28 行的 /home/ryannaddyps/weblyize.com/Party/nearby.php 中的非对象上调用成员函数 fetchAll()

但是,如果我在新连接上运行第二个查询,它工作正常吗?

4

2 回答 2

1

尝试使用nextRowset ():

$pdo  = new PDO("mysql:host=xxx;dbname=xxx", "xxx", "xxx");
$sql  = $pdo->query("call GetFromCoords($lat, $lng)");

$sql->nextRowset(); // This

$sql  = $pdo->query("call GetInRadius($zip, $dist)");
$rows = $sql->fetchAll(PDO::FETCH_ASSOC);
于 2013-01-23T18:17:49.893 回答
0

您的 SQL 查询是否可能触发错误?根据手册,查询失败时PDO::query返回FALSE(即非对象)。

使用启用error_reportingdisplay_errors/或初始化连接PDO::ERRMODE_EXCEPTION

于 2013-01-23T18:19:47.003 回答