2014-03-13 79 views
0

我是一個相對較新的開發,但知道一些東西。奇怪的PHP要求/包括錯誤

我在做關於PHP的教程除了來自Lynda的基礎知識之外,還試圖創建數據庫類。

在課堂上寫完所有內容後,我試着查看是否建立了連接。

require_once("../includes/database.php"); 
if(isset($database)) { 
    echo "true<br />"; 
}else { 
    echo "false<br />"; 
} 

上述代碼是我的測試,看看它是否是豪鵬

的問題是,當我試圖用「require_once(」 config.php中「);」在數據庫類中。

require_once("config.php");//line 13 

class MySQLDatabase{ 
    //code that is not important for this issue 
} 

這給我的網頁上看到以下錯誤(S):

Notice: Use of undefined constant DB_SERVER - assumed 'DB_SERVER' in  E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 

Notice: Use of undefined constant DB_USER - assumed 'DB_USER' in E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 

Notice: Use of undefined constant DB_PASS - assumed 'DB_PASS' in  E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 
Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 

Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 

Warning: mysql_connect(): php_network_getaddresses: getaddrinfo failed: No such host is known. in E:\ProgramFiles\xampp\htdocs\photo_gallery\includes\database.php on line 13 

數據庫連接失敗:php_network_getaddresses:的getaddrinfo失敗:沒有這樣的主機被稱爲

如果我使用(代碼下面)而不是require/require_once/include/include_once部分的工作!

define("DB_SERVER", "localhost"); 
define("DB_USER", "gallery"); 
define("DB_PASS", "123465"); 
define("DB_NAME", "photo_gallery"); 

這不是我第一次使用需要/包括......但我真的很困惑,爲什麼這種用這種方法doesen't工作: -/ (我會改變一切,以mysqli的一次,我完成用,因爲它是本教程的DB類。不,我沒有訪問練習文件)

(抱歉長後)

+0

'config.php'中可能存在一些問題。 –

+2

看來,在config.php中,您並沒有像您在示例中那樣定義常量。 正如它所說的,config.php中的常量似乎在其定義中缺少(花括號)大括號。 將coinfig.php添加到問題中(只需用空白替換登錄,傳遞和主機) –

回答

0

聽起來就像在你的config.php你錯過定義你的常量時引號。

wrong: 
define(DB_SERVER, "localhost"); 
right: 
define("DB_SERVER", "localhost"); 

仔細檢查,或者從您的config.php :)

+3

它實際上是在'mysql_connect()'中拋出錯誤的常量的使用,因爲它們從來沒有定義過。 –

+0

雖然這是一個正確的建議,但它不可能是問題的原因。通知中的消息本身表示,如果DB_SERVER尚未定義,則將其視爲「DB_SERVER」。 – Jon

0

嘗試定義下列方式中的常量後的相關章節。

defined('DB_SERVER') ? null : define("DB_SERVER", "localhost"); 
defined('DB_USER') ? null : define("DB_USER", "gallery"); 
defined('DB_PASS') ? null : define("DB_PASS", "123456"); 
defined('DB_NAME') ? null : define("DB_NAME", "photo_gallery"); 

刪除Notice: Use of undefined constant DB_SERVER請注意。

它看起來像我們缺少的東西或你的MySQL數據庫關閉?

+0

好的......固定它,但在某種程度上,我沒有去做它會做任何事情,因爲它聽起來有點荒謬。 我剛剛將文件從「config.php」重命名爲「conf.php」...我的印象是它會以某種方式與來自xampp的其他文件以相同名稱衝突。 我同樣改變了我用user1912855「聲明的方式來定義它們的方式」(但它也以舊方式工作) 我沒有想到它會與其他文件發生衝突,看到我如何專門給出路徑我包含文件夾... 感謝您的迴應傢伙! – boxanel