2013-01-23 2 views
0

Почему, когда я делаю это:PDO fetchAll на необъектных ошибки

<?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); 

я получаю эту ошибку:

Fatal error: Call to a member function fetchAll() on a non-object in /home/ryannaddyps/weblyize.com/Party/nearby.php on line 28

Но если я запускаю второй запрос на новое соединение, оно работает штраф?

+0

имеет инициализацию $ pdo? –

+0

Да, это первый раз. –

ответ

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); 
+0

Идеально подходит! –

+0

Рад помочь :) – AlienWebguy

0

Возможно ли, что ваш SQL-запрос вызывает ошибку? Согласно manual, PDO::query возвращает FALSE (т. Е. Не объект), когда запрос завершается с ошибкой.

Включить error_reporting и display_errors или, альтернативно, инициализировать соединение с помощью PDO::ERRMODE_EXCEPTION.

Смежные вопросы