2010-06-14 53 views
-2

當我使用../mysqlConnect.php時,我收到以下消息。當我使用../時,爲什麼會出現警告和致命錯誤?

Warning: require_once(../mysqlConnect.php) [function.require-once]: 
failed to open stream: No such file or directory in /home/content/etc... 

Fatal error: require_once() [function.require]: Failed opening required 
'../mysqlConnect.php' (include_path='.:/usr/local/php5/lib/php') in /home/content/etc...  

當我使用目錄名稱 - mydir/mysqlConnect.php - 一切工作正常。

+1

也許是因爲'mydir'在當前目錄內(考慮它是相對的),其中'../'高於它......? – ircmaxell 2010-06-14 18:39:54

+1

請更新您的問題並添加您的文件夾和文件的結構。 – jigfox 2010-06-14 18:55:22

+0

您是否嘗試在'../mysqlConnect.php'中添加引號? – 2010-06-14 20:20:30

回答

-1

這是因爲您沒有指定正確的包含路徑。 ../涉及父目錄。 ../../回去兩個目錄,../../../去三個回。如果mysqlConnect.php文件與腳本位於同一文件夾中,則不需要在include中指定../

請確保您指定了正確的路徑。你可以很容易地檢查你是否指定正確的路徑,如:

if (file_exists('../mysqlConnect.php')) 
{ 
    echo 'Iam specifying the correct path !!'; 
} 
else 
{ 
    echo 'Well, I am not :('; 
} 
+0

我想要包含的文件位於根目錄下一個級別的文件夾中。什麼是正確的道路? – aliov 2010-06-14 18:40:41

+0

@aliov:如果它位於根的下一級,並且腳本位於根目錄下,那麼您應該指定該文件夾的名稱而不是'../'。 – Sarfraz 2010-06-14 18:42:34

0

因爲它沒有找到你的文件。給出更具體的答案我需要看到你的文件/文件夾結構

+0

我想包含的文件位於根目錄下一個級別的文件夾中。 – aliov 2010-06-14 18:42:01

+0

和哪裏是想要包含此文件的文件?文件相對於根目錄的位置並不重要。重要的是它相對於要包含其他文件的文件的位置。 – jigfox 2010-06-14 18:54:33

+0

需要該文件的腳本位於根目錄中。我需要的文件位於根目錄下一個文件夾中。根據定義, – aliov 2010-06-14 18:59:15

1

要求是相對於invoced腳本,而不是你調用require()的腳本。使用類似這樣的東西來獲得絕對路徑:

require(dirname(__FILE__) . '/../mysqlConnect.php'); 

在PHP 5中,您還可以使用DIR

2

require_once('../mysqlConnect.php')要求PHP在以上的目錄中查找您的腳本當前在mysqlConnect.php之一。

由於您的連接文件似乎是一個mydir目錄,require_once('mydir/mysqlConnect.php')的作品,因爲它會在該目錄中,這是由一個它目前在遏制。

視覺表現(假設script.php是你的腳本包括文件):

dir/ 
    subdir/    # PHP looks here for ../mysqlConnect.php 
    script.php 
    mydir/    # PHP looks here for mydir/mysqlConnect.php 
     mysqlConnect.php 
+0

需要該文件的腳本位於根目錄下。我需要的文件位於根目錄下一個文件夾中。 – aliov 2010-06-14 18:48:06

相關問題