PHP错误 - 无法重新声明函数
我有一个调用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功能。所以我有点卡在不能使用任何一个选项。
尝试include_once '../connect.php';
它会确保你只包括一次这个文件
的include_once事情做的伎俩 - 谢谢! – Genadinik 2011-06-10 16:50:53
@Genadinik您还应该阅读@Fosco写关于您的错误的内容。试着通过重做你的程序逻辑来修复你的错误,'include_once'和'required_once'不是很理想,因为它们都会消耗宝贵的系统资源来判断文件是否已经被包含/需要。 – afarazit 2011-06-10 16:58:22
在某些情况下,在其中一个子文件php文件中可能会有一个额外的include语句,那就是我发现我的错误的地方。 incude_once在这些情况下不起作用。 – 2016-07-20 02:56:05
看看你的文件和包括...你是宣称功能的两倍,这是错误。它与MySQL,数据库连接或mysql_real_escape_string()无关。
I.e.您可能包含文件A和文件B,但文件A已经包含文件B ...您可以确定包含错误的位置,或使用include_once
或require_once
来防止其重新加载。
可能您包含该文件多次。使用require_once而不是include。
你不能使用mysql_real_escape_string(),因为connect.php很可能会建立你的数据库连接。我的猜测是有另一个包含(也许'functions.php')具有相同的功能。
你可能有这样的事情:
功能hassuspicioushackerstrings($输入){}
在connect.php,您可以添加if(!function_exists('hassuspicioushackerstrings')) {
和}
周围的功能。
永远不要在另一个函数内创建或声明一个函数。但是你仍然可以在函数内使用其他函数。例如,以下内容不正确
function addition($a, $b)
{
function subtraction(){
}
return $a+$b;
}
您似乎在包含声明'hassuspicioushackerstrings()'的文件。我不认为这是与mysql_real_escape_string() – 2011-06-10 16:45:21