2012-12-12 27 views
5

मैं जिसमें मैं 4 स्थिरांक परिभाषित एक फ़ाइल config.php कहा जाता है में डेटाबेस से कनेक्ट करने की कोशिश कर स्थिरांक उपयोग नहीं कर सकते:जब अन्य फ़ाइल

<?php 

define('HOST','localhost'); 
define('USER','root'); 
define('PASSWORD',''); 
define('DATABASE','some_database'); 

?> 

मुझे क्या करना चाहते है के साथ इस स्क्रिप्ट फोन अन्य php फ़ाइल के अंदर request_once समारोह

<?php 
    require_once('config.php'); 
    $connect = mysql_connect(HOST,USER,PASSWORD); 
    $select_db = mysql_select_db(DATABASE); 
?> 

क्या मैं लौट आए हो कि मेजबान, उपयोगकर्ता, पासवर्ड और डेटाबेस से परिभाषित नहीं कर रहे हैं जोड़ने के लिए database.php जो इस फ़ाइल से निरंतर उपयोग करेगा कहा जाता है। ऐसा क्यों है? यह एक नमूना सरलीकृत कोड है जिसका उपयोग मैंने कनेक्शन के लिए किया था लेकिन समस्या का सार यहां है। पहले ही, आपका बहुत धन्यवाद।

+0

तुम सिर्फ चर प्रतिध्वनित करने के लिए सुनिश्चित करने के लिए अपनी स्क्रिप्ट ठीक से अन्य फ़ाइल पढ़ रहा है की कोशिश की है? क्या यह गलत रास्ता हो सकता है? बस अंदाज़ा लगाओ। बीटीडब्ल्यू, 'mysql' आदेश नए' mysqli' आदेशों के पक्ष में सुरक्षा कारणों से बहिष्कृत हैं। – War10ck

+0

दोनों फाइलें एक ही निर्देशिका में रखी गई हैं और मैंने फ़ाइल नामों को सही ढंग से वर्तनी के साथ लगभग दर्जन बार चेक किया है:/ – DevGuy

+0

यदि उन्हें परिभाषित नहीं किया गया है तो कुछ को 'config.php' को शामिल करने से रोकता है। अपने फ़ाइल नामों की जांच करें और सुनिश्चित करें कि 'config.php' में कोई त्रुटि नहीं है। – MahanGM

उत्तर

1

पीएचपी डिफ़ॉल्ट रूप से नहीं करते अपरिभाषित स्थिरांक की नोटिस दिखाएं। तो यदि आप एक अनिर्धारित निरंतर PHP का उपयोग करते हैं तो वह एक स्ट्रिंग के रूप में सरल व्यवहार करेगा। उदाहरण के लिए,

<?php 
//define('__TEST__', 'foo'); 

print __TEST__; //Will print __TEST__ and raise E_NOTICE if it's enabled 

अगर आप define() ऊपर uncomment पीएचपी foo बजाय प्रिंट होगा और एक नोटिस आगे नहीं बढ़ेगी। यह पठनीय आप इस
2) क्या स्थिरांक की जाँच में शामिल होने से पहले config.php
1 में

0) घोषित error_reporting(E_ALL)) जाँच करें कि क्या फ़ाइल मौजूद है और:

व्यक्तिगत तौर पर मैं आप थोड़ा गहरा परीक्षण बनाने के लिए सुझाव है कि वास्तव में इससे पहले कि आप उन्हें

अंत का उपयोग परिभाषित कर रहे हैं, यह इस चाहते हैं:

फ़ाइल: config.php

<?php 

error_reporting(E_ALL); 

define('HOST','localhost'); 
define('USER','root'); 
define('PASSWORD',''); 
define('DATABASE','some_database'); 

फ़ाइल: dbconnection.php

<?php 

//require() will produce FATAL error if inclusion fails, so we're OK 
require_once('config.php'); 


if (defined('HOST') && defined('USER') && defined('PASSWORD') && defined('DATABASE')){ 

$connect = mysql_connect(HOST,USER,PASSWORD); 
$select_db = mysql_select_db(DATABASE); 

} else { 

    trigger_error('Some constants are missing', E_USER_ERROR); 
} 
+0

@devguy - आपको इस टिप्पणी को ठीक करना चाहिए कि इस समस्या ने आपको अपनी समस्या को ठीक करने में कैसे मदद की। जैसा कि अब है, भविष्य में स्टैक ओवरफ़्लो पाठकों के लिए यह प्रश्न थोड़ा उपयोग नहीं है। –

0

आप यह देखने के लिए कि इसमें कोई फर्क पड़ता है, शामिल करें() को शामिल करने का प्रयास कर सकते हैं। अब मूल्यह्रास रहे

require_once(dirname(__FILE__) . "/config.php"); 

आप mysqli या पीडीओ mysql कार्यों के रूप में ध्यान देना चाहिए: भी अगर आप एक स्थानीय मशीन पर काम कर रहे हैं, तो आप उपयोग कर सकते हैं

define("DB_HOST", ""); 
define("DB_USERNAME", ""); 
define("DB_PASSWORD", ""); 
define("DB_NAME", ""); 

    $Mysqli = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME); 
     if ($Mysqli->connect_errno) 
     { 
      echo "Failed to connect to MySQL: (" . $Mysqli->connect_errno . ") " . $Mysqli->connect_error; 
      $Mysqli->close(); 
     }