我的问题是,
这是包含的文件,
<?php
$dbhost = "localhost";
$dbuser = "****";
$dbpass = "***";
$dbname = "****";
$MYSQL_ERRNO = "";
$MYSQL_ERROR = "";
// Connect To Database
function db_connect() {
global $dbhost, $dbuser, $dbpass, $dbname;
global $MYSQL_ERRNO, $MYSQL_ERROR;
$link_id = mysql_connect($dbhost, $dbuser, $dbpass);
if(!$link_id) {
$MYSQL_ERRNO = 0;
$MYSQL_ERROR = "Connection failed to $dbhost.";
return 0;
}
else if(!mysql_select_db($dbname)) {
$MYSQL_ERRNO = mysql_errno();
$MYSQL_ERROR = mysql_error();
return 0;
}
else return $link_id;
}
?>
主文件具有以下代码以进行数据库连接,
<?php
require_once 'file.php';
$link_id = db_connect($dbname);
......
?>
但是我得到了函数未定义的错误。
在Windows中使用Apache和PHP 5.3
答案 0 :(得分:1)
1)检查包含的相对路径。
2)仅仅因为PHP文档说你可以使用require_once
而没有括号并不意味着你应该这样做。保持一致,使用require_once("file.php");
。
3)与函数中的花括号一致。你错过了一两个。我想知道你是否按照以下方式重写你的功能:
function db_connect() {
global $dbhost, $dbuser, $dbpass, $dbname, $MYSQL_ERRNO, $MYSQL_ERROR;
$link_id = mysql_connect($dbhost, $dbuser, $dbpass);
if ($link_id === false) {
$MYSQL_ERRNO = 0;
$MYSQL_ERROR = "Connection failed to $dbhost.";
return 0;
} elseif (mysql_select_db($dbname) === false) {
$MYSQL_ERRNO = mysql_errno();
$MYSQL_ERROR = mysql_error();
return 0;
} else {
return $link_id;
}
}
请记住,检查您的Web服务器错误日志通常会有所帮助。
编辑:
根据此答案的评论,您不包括您认为自己的文件。使用包含的绝对路径,这样您就可以100%确定要包含的文件。
答案 1 :(得分:0)
逻辑。
有时我们需要它。
让我们理清你的情况。
下一步是什么?
您收到此错误的最可能原因是您在此处发布的错误代码
例如,如果您的文件不是file.php
而是http://example.com/file.php
,则结果将完全按照描述。
或者可以有2个名为'file.php'的文件,一个包含函数定义,另一个没有它
或者也可以在函数名称中输入拼写错误。
因此,您只需要仔细检查您的姓名并打印一些调试信息,以确保包含正确的文件并调用正确的功能。