1
粗體部分是我質疑的部分。在search_for_new_user
函數內部,如果我將$conn->prepare
更改爲$this->db_connection()->prepare
。我收到丟失的連接錯誤。但是,在上面的功能db_conn_test
我可以使用這種語法。在這兩種情況下,我都會返回$connection
,所以我不明白爲什麼在語法上必須有所不同。準備好的語句數據庫連接必須首先實例化嗎?
class Database {
function db_connection() {
$server = "localhost";
$user = "user";
$password = "password";
$database = "database";
return $connection = new mysqli($server, $user, $password, $database);
}
function db_conn_test() {
if (**$this->db_connection()->connect_errno**) {
die($this->db_connection()->connect_errno . ": " . $this->db_connection()->connect_error);
} else {
echo "connected to mysql database";
}
}
function search_for_new_user($email) {
**$conn = $this->db_connection();**
if ($stmt = **$conn->prepare**("SELECT email FROM users where email = ?")) {
$stmt->bind_param("s", $email);
$stmt->execute();
$stmt->bind_result($result);
$stmt->fetch();
echo $result;
$stmt->close();
$conn->close();
}
}
}