我的项目在我的本地计算机上运行正常,但在Web服务器上运行不正常

时间:2010-08-29 12:50:20

标签: php mysql upload mysqli

我的项目在我的本地计算机上工作正常,但在Web服务器上却没有。我认为这是存储过程,因为我得到的错误是:

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

数据库的整理是“utf8_general_ci”。

只是一个简单的例子:

  

我有一个名为offices的存储过程:

     

CREATE PROCEDURE办公室()

     

BEGIN

SELECT * FROM offices;
     

END //

和php代码:

<?php
  

require(“db.php”);

     

$ db = dbConnect();

     

$ result = $ db-&gt; query(“CALL offices()”);

     

while(list($ id,$ city,$ address)= $ result-&gt; fetch_array())

     

echo“($ id)$ city:$ address
”;

     

&GT;

1 个答案:

答案 0 :(得分:1)

我觉得你的代码在哪台机器上并不重要。这种错误可能发生在任何地方。

我对你的$ db-&gt; query()方法的界面了解不多。

是否在'结果错误'时返回'null'?

就个人而言,我会在:

之间添加一些错误检查
  • 对$ db-&gt; query()的调用 和
  • 使用$ result-&gt; 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
    ";

    ?>