Ich versuche, eine db-util-Klasse mit dem Singleton-Muster zu schreiben. Mein Problem ist, dass das "Verbindung" -Objekt immer Null ist. Die Verbindungseinstellungen sind korrekt. Was könnte ich falsch machen? Außerdem bin ich relativ neu in PHP Entwicklung. Welche Methode sollte ich verwenden, um herauszufinden, was falsch ist? Code folgt.Mysqli-Konstruktor gibt null zurück
class DBUtil {
public $connection = NULL; //mysqli_connection object
private static $instance = NULL;
private function _constructor($conn){
//$this->connection = mysqli_connect(TagMetroConfiguration::getConfigurationValueFor("db_servser_name"), TagMetroConfiguration::getConfigurationValueFor("db_username"), TagMetroConfiguration::getConfigurationValueFor("db_password"), TagMetroConfiguration::getConfigurationValueFor("db_name"));
$this->connection = new mysqli("localhost", "root", "toor", "testdb");
}
public static function getInstance(){
if(DBUtil::$instance == NULL){
try{
DBUtil::$instance = new DBUtil();
}catch(Exception $ex){
throw new Exception("Unable to create DB Instance");
}
}
return DBUtil::$instance;
}
}
Nun, das Singleton-Muster sieht zu kompliziert für Sie aus, aber das ist überhaupt kein Problem: Verwenden Sie keine Singletons. Sie brauchen sie nicht in PHP. In Ihrem Fall benötigen Sie nur eine globale Variable für die Datenbankverbindung. - Aber wenn Sie Lust auf Kopieren und Einfügen haben, [das PHP-Handbuch enthält ein Codebeispiel für das Singleton-Muster] (http://php.net/manual/en/language.oop5.patterns.php#language.oop5.patterns. Singleton) (nicht dass das alles besser macht, benutze es nicht). [Wer braucht Singletons?] (Http://stackoverflow.com/q/4595964/367456). – hakre