PHP错误 - 无法重新声明函数

时间:2011-06-10 16:42:52

标签: php

我有一个JavaScript函数来调用PHP脚本。到现在为止还挺好。当我尝试这样做时会出现问题:

$hike_id = mysql_real_escape_string($_GET['hike_id']);

当我导入我的连接文件时,它给出了一个错误,即该文件中的函数已经定义,错误是这样的:

[Fri Jun 10 12:34:43 2011] [error] [client 75.24.105.18] PHP Fatal error:  Cannot redeclare hassuspicioushackerstrings() (previously declared in /home/webadmin/comehike.com/html/connect.php:16) in /home/webadmin/comehike.com/html/connect.php on line 40

它所引用的错误是连接脚本中的一个函数。

但如果我删除

include '../connect.php';

然后它会告诉我我不能使用mysql_real_escape_string函数。因此,我无法使用任何一个选项。

5 个答案:

答案 0 :(得分:12)

尝试include_once '../connect.php';它会确保您只包含一次此文件

答案 1 :(得分:4)

看看你的文件和你的包含......你正在声明这个功能两次,那就是错误。它与MySQL,数据库连接或mysql_real_escape_string()无关。

即。您可能包含文件A和文件B,但文件A已包含文件B ...您可以找出包含错误的位置,或使用include_oncerequire_once来防止它出现问题 - 上下。

答案 2 :(得分:2)

可能您多次包含该文件。使用require_once而不是include。

答案 3 :(得分:1)

你不能使用mysql_real_escape_string()因为connect.php很可能是设置你的数据库连接。我的猜测是有另一个包含(也许是'functions.php')具有相同的功能。

你可能有这样的事情:

function hassuspicioushackerstrings($ input){ }

在您的connect.php中

,您可以在函数周围添加if(!function_exists('hassuspicioushackerstrings')) {}

答案 4 :(得分:0)

永远不要在另一个函数中创建或声明一个函数。但您仍然可以在函数内使用其他函数。例如,以下是不正确的

function addition($a, $b)
{
    function subtraction(){
    }
    return $a+$b;
}