【问题标题】:My project works fine on my local machine, but not on the web server我的项目在我的本地机器上运行良好,但在网络服务器上却不行
【发布时间】:2011-04-05 10:04:58
【问题描述】:

我的项目在我的本地机器上运行良好,但在网络服务器上却不行。我认为这是存储过程,因为我得到的错误是:

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

数据库的排序规则是“utf8_general_ci”。

只是一个简单的例子:

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

创建过程office()

开始

SELECT * FROM offices;

结束//

还有php代码:

<?php

需要(“db.php”);

$db = dbConnect();

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

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

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

?>

【问题讨论】:

  • (-1) 遇到致命错误时,请始终显示导致错误的代码及其周围。这主要是 PHP 版本和随附库的差异。
  • @Pekka - 我认为“真正的新手”比更有经验的程序员更难接受答案,因为他们根本不知道哪个是正确的答案。虽然我有时确实感觉像戴夫艾伦 - 所以我知道你的意思。 youtube.com/watch?v=nPGg8mv1vmc#t=250
  • @JW 这是一个很好的观点!再看视频:哈哈哈!
  • 哈哈 - 是的,总是让我发笑。

标签: php mysql upload mysqli


【解决方案1】:

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

我不太了解你的 $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
    ";

    ?>

【讨论】:

  • 我试过这个代码 "$db->e​​rror;"我收到此错误“执行命令拒绝用户 'tisegoco_goitse'@'localhost' 用于例程 'tisegoco_tisego.offices”
  • 所以这是一个权限问题。大概。该用户是否在第二台机器上设置并获得了适当的权限?这可能是另一个问题,但我会检查数据库用户。 P.S 我会在发布之前从您的错误消息中删除任何个人数据 - 只是为了安全。
  • 只想补充一点,在远程数据库上修改特权/权限是值得花时间研究的。有一些陷阱,有时你认为你在限制特权,实际上更多地开放它们......所以不要着急;o)devshed.com/c/a/PHP/Doing-More-With-phpMyAdmin-Part-1/5 ...dev.mysql.com/doc/refman/5.1/en/adding-users.html ...希望没有听起来太光顾了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 2017-06-16
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多