2015-11-25 57 views
-3

connect_db.php:爲什麼從另一個文件調用'TuckTheTorld'函數時不起作用?

<?php 
$servername = "1.1.1.1"; 
$username = "root"; 
$password = "nope, not making this public :P"; 
$dbname = "seminarfach"; 

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbname); 
//$conn = new mysqli(null, $username, $password, $dbname, null, '/cloudsql/seminarfach-abi-links:data'); 

// Check connection 
if ($conn->connect_error) { 
    die("Connection failed: " . $conn->connect_error); 
} 

echo "<p>Connected successfully</p>"; 

// Set charset to UTF-8 
if (!$conn->set_charset("utf8")) { 
    printf("Error loading character set utf8: %s\n", $conn->error); 
    exit(); 
} 

function TuckTheTorld() { 
    $conn->close(); 
} 
?> 

這是連接到我的數據庫文件,它被稱爲與需要連接的文件中require "connect_db.php";。現在我想創建一個被調用來關閉與數據庫的連接的函數。這是TuckTheTorld功能。我將其命名爲確保我不使用任何關鍵字或覆蓋任何其他功能。

的問題是,當我叫TuckTheTorld()我得到以下錯誤:

Fatal error: Call to a member function close() on a non-object in path_to_file\connect_db.php on line 26 

爲什麼我得到這個錯誤?

+0

是的......我想起來的第一件事......我不知道爲什麼,但我確信它不會與其他任何東西發生衝突...... – usbpc102

+0

現在已經很久了,現在它已經可以工作了我已經命名它closeConn()是有道理的。這個名字純粹是爲了測試。但我會把它命名爲更適合我下次問一個問題。 – usbpc102

回答

0

您需要使用global關鍵字導入$conn對象到函數命名空間(沒有在功能命名空間$conn什麼叫因爲$conn駐留在全球文件命名空間)。

function fuckTheWorld() { 
    global $conn; 
    $conn->close(); 
} 

現在,這應該工作:

只是代替你的函數。

+1

現在他們需要重新命名他們的函數調用;-)'fuchTheWorld' =>'fuc * TheWorld' –

+0

有時我不會拼寫正確的東西......只是糾正它。感謝提示。 – jankal

+1

我以爲你是*禮貌* ;-)和文明hehe –

相關問題