2011-01-17 23 views
6

जब मैं समस्या वर्ग मैं निम्नलिखित त्रुटि मिलती है उपयोग करने का प्रयास:गंभीर त्रुटि: क्लास 'डेटाबेस' नहीं मिला - पीएचपी

Fatal error: Class 'database' not found in path/problem.php on line 25 

मुझे समझ नहीं आता क्यों मुझे यह त्रुटि आई, के शीर्ष पर problem.php मुझे डेटाबेस.एफपी की आवश्यकता है। क्या हो रहा है?

problem.php

<?php 
require("common.php"); 
require("database.php"); 
... 
?> 

database.php

<?php 
class database 
{ 
    ... 
} 
?> 
+1

क्या आप सही कोड प्रदान कर सकते हैं? –

+0

एक ही फ़ोल्डर में problem.php और डेटाबेस.php हैं? –

+0

सिप्रियन एल .: यह सही कोड है। आपका क्या अर्थ है? एरिक: हाँ। – SamB

उत्तर

11

यह शायद पथ समस्या शामिल है। आदेश में इसे ठीक करने के लिए, अपने problem.php फ़ाइल में

ऐसा करते हैं:

echo realpath (dirname(__FILE__)); 

कि होगा उत्पादन कुछ

/var/www/html/myfilepath/

कि आपकी फ़ाइल , problem.php उस डीआईआर में होगा।

अब, अगर database.php कि निर्देशिका में भी है, तो आप इस

$filepath = realpath (dirname(__FILE__)); 

require_once($filepath."/database.php"); 

क्या कर सकते हैं अगर यह कहीं और है आप

require_once($filepath."/../../path/to/somewhere/else/database.php"); 
+0

/var/www/html/spring-php/controllers/../../model/User.php यह वही है जो मुझे मिल रहा है। कृपया सहायता कीजिए –

1

आप फ़ाइल को शामिल करते हैं?

include "database.php"; // or the path relative to database.php 
class problem 
{ 

कभी नहीं। शायद: शामिल (आवश्यक) फ़ाइल खोल नहीं रहा है।

+0

का उपयोग करना चाहिए। यह समस्या का तीसरा पंक्ति है। Php – SamB

0

आप database.php के पाद लेख के लिए

echo "OK"; 

जोड़ सकते हैं और फिर से जाँच कर सकते हैं?

तो, हम समझ सकते हैं, डेटाबेस.php वास्तव में पृष्ठ पर शामिल है।

+0

यह प्रदर्शित नहीं हो रहा है ऊपर ... वह क्यों होगा? database.php एक ही निर्देशिका में है। – SamB

+0

ठीक है। अब आप सीधे डेटाबेस.एफपी की जांच कर सकते हैं? जब आप डेटाबेस.एफ़पी पर देखते हैं, तो यह ठीक दिख रहा है? या बस खाली पृष्ठ? यदि खाली पृष्ठ लौटाया गया है, तो आप डेटाबेस.एफ़.पी. पर वाक्यविन्यास गलती करते हैं। – Eray

-1
भावी पीढ़ी के लिए

कर सकते हैं: सिर्फ कारण स्पष्ट करने के लिए यह असफल रहा है कि आप मूल कॉल के दृष्टिकोण से शामिल हैं, मुझे उदाहरण देने की व्याख्या करने दें:

myfolder/index.php 
<?php 
include ("classes/problem.php"); 
... 
?> 

का मतलब है कि जब तक आप "problem.php" प्राप्त करते हैं और "database.php" का उल्लेख करते हैं, तो आप "myfolder/" में हैं, जहां तक ​​PHPland को "myfolder/classes" (जिसे आपको समझने के लिए इसमें होना चाहिए) । ऐसा करने का सही तरीका है कि लाइन 1 पेज 1 पर लगातार बनाए गए सब कुछ के लिए पूर्ण पथ का उपयोग करना है। मुझे पता है कि बहुत से लोग कहते हैं कि भयानक है - लेकिन सभी ईमानदारी में यह "नेमस्पेस" को ठीक करना है, लेकिन मैं अभी भी स्थिरांक का उपयोग करता हूं (आईएमएचओ नेमस्पेस php में भयानक हैं, और आत्म-उन्नति/ओपन सोर्स विज्ञापन/लेखकत्व अहंकार के बारे में अधिक जानकारी है जो कुछ भी ठोस या उपयोगी है)

संबंधित मुद्दे