我读过很多关于这个问题的东西,但是我仍然无法修复它。PHP未定义的变量在函数和包含的脚本
在我的函数文件我声明一个变量,象这样的值:
$px_host = "localhost";
而且我有像这样一个数据库查询功能:
function dbQuery($database, $reqquery){
if(!$connect = mysql_connect($px_host, $px_dbuser, $px_dbpass)){
exit("Error - cannot connect to MySQL server - " . mysql_error());
}
if(!$database = mysql_select_db($database)){
exit("Error - cannot select database - " . mysql_error());
}
if(!$query = mysql_query($reqquery)){
exit("Error - query error.");
}
return $query;
}
每当我尝试运行函数,我收到一个'未定义的变量'错误。我已经尝试将变量设置为全局,但它仍然表示它是未定义的。它们在同一个文件中,变量在函数之前被定义和设置。
(我不好解释,所以试试看吧) 包含dbQuery()
的文件包含在另一个文件中。在另一个文件中,有一个使用dbQuery()
来获得某些信息的功能。是否有可能因为它是从第一个文件开始运行的,该变量超出了范围?
每次您想要发送SQL查询时重新连接是一个坏主意。代码中的前两个操作应该只在脚本开始时执行一次。除此之外,考虑使用'mysqli'或'PDO',它们比旧的'mysql'扩展更好 - 它们支持例如准备好的语句(比转义更好,更安全)。 – ThiefMaster
好的,我已经采纳了所有的建议,并且正在研究OOP。感谢所有的帮助! – ToshNeox