PHP sınıfı Veritabanı Bağlantısı Kapsamı Sayı

3 Cevap php

PHP yapıyorum yeni bir proje için ben veritabanına bağlanmak ve sorguları gerçekleştirmek için SQLMethods sınıfı oluşturduk. Bu gece aslında test etmek için var ilk gece oldu (ben yani bir hafta önce ya da yazdı ve bu konuda unuttum) ve beklenmeyen bir hata oluştu: () işlevini benim ExecuteQuery çağırıyordu, bu veritabanını kullanmak olmaz I yapıcısı seçilmiş.

Yapıcı:

	public function SQLMethods() {
		$SQLConnection = mysql_connect($SQLDBAddress, $SQLUserName, $SQLPassword);

		if (!$SQLConnection) {
			die('Could not connect: ' . mysql_error());
		}

		mysql_select_db($SQLDB, $SQLConnection);
	}

Söz konusu fonksiyonu:

	public function ExecuteQuery($Query) {
		mysql_query($Query, $SQLConnection) or die('Could not perform query: ' . mysql_error());
	}

Herkes sorun ne olabilir görüyor mu? Yapıcı tamamlandıktan sonra bağlantı yakın mı?

3 Cevap

Eğer sınıfta $ SQLConnection ilan etmeli, ve siz ona bakmalıdır

 $this->SQLConnection

ve basitçe $ SQLConnection.

$SQLConnection ExecuteQuery yöntemi içinde yok.

Sen ExecuteQuery parametre olarak doğrudan geçmek, ya da yapıcı ayarlanır ve $this->sqlConnection sınıf yöntemleri içinde olarak erişilen bir sqlConnection sınıf özelliği ya da ekleyebilirsiniz .

Değişken $ SQLConnection ExecuteQuery () kullanmaya çalışıyor başka çerçevesinde oluşturulur. (SQLMethods fonksiyonu).

Bağlantı PHP komut dosyası kendi işini yapmıştır kapanır veya kendiniz kapatırsanız (bağlantı olduğunu komut dosyası içinde yapılmış ise)

Php.net belgeleri tarafından belirtildiği gibi ExecuteQuery içinde $ SQLConnection değişkeni atlamak gerekir

"Link tanımlayıcı belirtilmemişse mysql_connect tarafından açılan son bağlantı () kabul edilir."