php致命错误 - 不明白为什么

时间:2009-11-21 00:56:27

标签: php

我收到此错误消息

Fatal error: Cannot redeclare get_db_conn() (previously declared in `/home/maxer/domains/x/public_html/xmasapp/dbfuncs.php:21) in /home/maxer/domains/x/public_html/xmasapp/dbfuncs.php on line 24`

这是代码

function get_db_conn() {
  $conn = mysql_connect($GLOBALS['db_ip'], $GLOBALS['db_user'], $GLOBALS['db_pass']);
  mysql_select_db($GLOBALS['db_name'], $conn);
  return $conn;
}

第21行指的是

$conn = mysql_connect($GLOBALS['db_ip'], $GLOBALS['db_user'], $GLOBALS['db_pass']);

第24行是函数

的结束花括号

代码工作正常,直到我尝试清理我的代码,我将大部分“视图”代码撕掉并将其放入单独的文件但没有更改任何逻辑

5 个答案:

答案 0 :(得分:3)

您很可能包含两次文件或包含两个文件,每个文件包含相同的文件。

您可以使用include_once()或设置更好的结构来阻止此问题。

修改

尝试此操作,看看您的包含设置是否显示错误。

echo "<pre>";
print_r(get_included_files());
echo "</pre>";

某处你包含一个文件两次,或者两个文件都有你的函数定义。

答案 1 :(得分:1)

这是一个包含文件吗?包含文件是否被包含多次?

它抱怨,因为get_db_conn被定义了不止一次,并且很可能它被多次包含,除非你在两个不同的地方有这个功能。

答案 2 :(得分:1)

您的错误消息显示:

  

无法重新声明第24行的[...] / dbfuncs.php中的get_db_conn()(先前在[...] / dbfuncs.php:21中声明)

您有一个名为get_db_conn()的函数,您要多次声明。您的dbfuncs.php文件是否包含其自身?

答案 3 :(得分:0)

你可能不止一次地包含()同一个文件。出于这个原因,我希望尽可能使用include_once()。

答案 4 :(得分:0)

您声明两个名称相同的函数(两者都称为get_db_conn())