我有下面的代碼使用include /需要連接數據庫
//dsn.php
//Object Oriented way
$servername = "localhost";
$username = "root";
$password = "password";
$dbname = "database";
//check connection
$conn = new mysqli($servername, $username, $password, $dbname);
if($conn->connect_error) {
die("could not connect:".$conn->connect_error);
}
//index.php
include 'dsn.php';
function a() {
$sql = "sql command";
$result = $conn->query($sql);
//working
$conn->close();
}
function b() {
$sql = "sql command";
$result = $conn->query($sql);
//not working
$conn->close();
}
這將顯示警告和通知,上面寫着:
警告:mysqli的查詢::( ):無法取得mysqli
注意:試圖取得非物件的財產
警告:mysqli的:: close()方法:無法獲取的mysqli
但是這一個工程:
include 'dsn.php';
function a() {
$sql = "sql command";
$result = $conn->query($sql);
//working
$conn->close();
}
function b() {
include $dsn.php
$sql = "sql command";
$result = $conn->query($sql);
//working
$conn->close();
}
如何只使用一個包含文件DSN和其它功能重複使用?
編輯 對不起,我忘了提
function a($conn) {}
function b($conn) {}
我傳遞的變量$康恩,但它仍然會顯示警告,注意我上面
不太確定你的意思。但你可以做到這一點。在每個函數中,使$ conn成爲全局變量,如全局$ conn; – Akintunde007
不確定,但我也認爲關閉連接必須在另一個操作之前重新連接,所以如果關閉$ conn();比在b()中的查詢之前必須重新連接。不是嗎? –