我對commong函數有commonFun.php;PHP使用include()變量作用域問題
<?php
function connectDB(){
$con = @mysqli_connect("localhost:3306", "root", "[email protected]", "DogSport") or die ("Couldn't connect to server");
}
//check that email is not already in list
function emailChecker($email){
connectDB();
$safe_email = mysqli_real_escape_string($con, $email);
$check_sql = "SELECT Id FROM Subscribers WHERE Email='". $safe_email. "'";
$result = mysqli_query ($con, $check_sql) or die ("Couldn't execute SELECT query: ". mysqli_error($con));
}
?>
當我打電話emailChecker()函數從另一個PHP腳本,爲什麼在connectDB()$ CON變量不可用於emailChecker()函數?我已經在emailChecker()函數中調用connectDB()函數了?我究竟做錯了什麼?????
我得到以下錯誤;
Notice: Undefined variable: con in C:\xampp\htdocs\PHP\commonFun.php on line 11
Warning: mysqli_real_escape_string() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\PHP\commonFun.php on line 11
Notice: Undefined variable: con in C:\xampp\htdocs\PHP\commonFun.php on line 14
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\PHP\commonFun.php on line 14
Notice: Undefined variable: con in C:\xampp\htdocs\PHP\commonFun.php on line 14
Warning: mysqli_error() expects parameter 1 to be mysqli, null given in C:\xampp\htdocs\PHP\commonFun.php on line 14
Couldn't execute SELECT query:
您正在''connectDB()'中定義'$ con',但沒有返回它,所以只要'connectDB()'函數執行完畢,'$ con'就停止在範圍內,並從內存中移除 –
你可以在這裏閱讀更多關於它的信息:http://php.net/manual/en/language.variables.scope.php – Federkun
修改'connectDB()'返回'$ con'的值並修改'emailChecker() '分配來自'connectDB()'....的響應''$ con = connectDB();' –