我的项目在我的本地计算机上工作正常,但在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;
答案 0 :(得分:1)
我觉得你的代码在哪台机器上并不重要。这种错误可能发生在任何地方。
我对你的$ db-&gt; query()方法的界面了解不多。
是否在'结果错误'时返回'null'?
就个人而言,我会在:
之间添加一些错误检查也就是说:
<?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
";
?>