我讀過很多關於這個問題的東西,但是我仍然無法修復它。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