मैं सिर्फ एक बार डेटाबेस (MySQLi) से कनेक्ट करने का प्रयास कर रहा हूं, लेकिन मुझे ऐसा करने में समस्याएं आ रही हैं।वैश्विक परिवर्तनीय - डेटाबेस कनेक्शन?
मैं संपूर्ण स्क्रिप्ट के लिए वैश्विक कनेक्शन कैसे बना सकता हूं? कई फाइलें हैं (index.php, /classes/config.class.php, /classes/admin.class.php, आदि)।
मैं कोशिश की है निम्नलिखित:
में: config.class.php
public static $config = array();
public static $sql;
function __construct() {
// database
db::$config['host'] = 'localhost';
db::$config['user'] = '_';
db::$config['pass'] = '_';
db::$config['db'] = '_';
// connect
db::$sql = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
}
फिर, config.class.php में
public function contectToDatabase($sql){
$sql = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
$this->sql = $sql;
}
मैं के साथ वर्ग का उपयोग निम्नलिखित कोड: $config = new db();
मैं वास्तव में एक परेशान हूँ मैं यह कैसे करूँगा। क्या कोई मदद कर सकता है?
--- संपादित करें --- यह मेरा नया config.class.php फ़ाइल है:
public static $config = array();
public static $sql;
private static $db;
private $connection;
public function __construct() {
// database
db::$config['host'] = '_';
db::$config['user'] = '_';
db::$config['pass'] = '_';
db::$config['db'] = '_';
// connect
$this->connection = new mysqli(db::$config['host'], db::$config['user'], db::$config['pass'], db::$config['db']);
}
function __destruct() {
$this->connection->close();
}
public static function getConnection() {
if($db == null){
$db = new db();
}
return $db->connection;
}
और यह मैं इसे कैसे लोड हो रहा है कर रहा हूँ है:
require_once("classes/config.class.php");
$config = new db();
$sql = db::getConnection();
हालांकि, चल निम्न त्रुटियों में एक real_escape_string परिणाम:
Warning: mysqli::real_escape_string() [mysqli.real-escape-string]: Couldn't fetch mysqli in /home/calico/_/_.com/_/index.php on line 20
Warning: mysqli::query() [mysqli.query]: Couldn't fetch mysqli in /home/calico/_/_.com/_/index.php on line 28
आप [सिंगलटन पैटर्न] (http://en.wikipedia.org/wiki/Singleton_pattern) – knittl
का उपयोग कर सकते हैं या आप [सिंगलटन एंटीपाटरर्न] का उपयोग करने के बजाय निर्भरता इंजेक्शन सीख सकते हैं (http://stackoverflow.com/ प्रश्न/45 9 5 9 64/कौन-जरूरत-सिंगलेट्स/4596323 # 4596323) – Gordon
हाँ ... सिंगलेट्स हमेशा गर्म बहस में परिणाम देते हैं। मैं केवल इनपुट और विचार दे रहा था – knittl