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

时间:2010-08-30 11:13:38

标签: php stored-procedures

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

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

数据库的整理是“utf8_general_ci”。

只是一个简单的例子:

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

CREATE PROCEDURE offices()

BEGIN

SELECT * FROM offices; 
END//

和php代码:

<?php 
require ("db.php");

$db = dbConnect();

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

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

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

?>

5 个答案:

答案 0 :(得分:1)

当您CALL offices()手动时,数据库服务器上会发生什么?有错误吗?如果我不得不猜测,看起来offices()函数没有在服务器上定义,或者在调用时失败(表offices不存在?)。

答案 1 :(得分:0)

对我看来,$ result不是对象或未初始化。你能告诉我们db库中的代码吗?特别是查询功能......

答案 2 :(得分:0)

确保用于安装架构的db用户具有创建存储过程的权限。如果您不确定它们是否在服务器上,您可以执行

SELECT * FROM `information_schema`.`ROUTINES`;

..查看哪些程序已成功创建。

请记住,大多数共享托管服务不支持触发器,程序等。

答案 3 :(得分:0)

您可能正在远程服务器上运行不同版本的数据库。 所以查询方法失败了,并没有返回应返回的内容。

答案 4 :(得分:0)

看起来您的身份验证不允许在服务器上使用数据库程序