Мой проект отлично работает на моей локальной машине, но не на веб-сервере - PullRequest
0 голосов
/ 29 августа 2010

Мой проект работает нормально на моей локальной машине, но не на веб-сервере. Я думаю, что это хранимые процедуры, потому что ошибка, которую я получаю:

Fatal error: Call to a member function fetch_array() on a non-object in ...

Сортировка базы данных: "utf8_general_ci".

Просто простой пример:

У меня есть хранимая процедура, которая называется office:

ПРОЦЕДУРА СОЗДАНИЯ ()

НАЧАТЬ

SELECT * FROM offices;

END //

И код php:

<?php

require ("db.php");

$ db = dbConnect ();

$ result = $ db-> query ("CALL офисы ()");

while (список ($ id, $ city, $ address) = $ result-> fetch_array ())

echo "($ id) $ city: $ address
";

?>

1 Ответ

1 голос
/ 04 сентября 2010

Не думаю, что имеет значение, на какой машине работает ваш код.Такая ошибка может возникать где угодно.

Я не очень разбираюсь в интерфейсе вашего метода $ db-> query ().

Возвращается ли значение 'null' при 'ошибке результата'?

Лично я бы добавил немного проверки ошибок между:

  • вызовом $ db-> query () и
  • использованием $ result->fetch_array ()

то есть что-то вроде:

<?php

    require ("db.php");

    $db = dbConnect();

    $result = $db->query("CALL offices()");

    if (!(is_object($result)))
      {
      throw new Exception('No result returned from query: ' . $db->getLatestError() );         
      }

    //count rows
    if ($result->numberOfRows() < 1)
      {
      //do something for no rows
      echo "No Offices found\n";
      return;
      }

    while(list($id, $city, $address) = $result->fetch_array())

    echo "($id) $city: $address
    ";

    ?>
...