Ben bir mysql veritabanına erişimi kolaylaştırmak için hızlı bir PHP sınıfı yazdı ettik. Sınıf Tamam çalışır, ve, bağlantı açılır sorgu yürütür ve sonra bağlantıyı (I bağlantı komut dosyası tamamlandıktan sonra PHP'nin kendisi tarafından kapatılması gerekiyordu olduğunu biliyorum, ama ben sevmiyorum kapatan bir sorgu () yöntemi vardır ) bu konuda çok güveniyor.
Bir performans açısından, ben, hep ben bir sorguyu yürütmek her zaman ben () girişini süzmek için mysql_real_escape_string kullanmaya çalıştığınızda, bu işe yaramazsa da çok iyi bir uygulama olduğu (ve olmayabilir bir veritabanına bir bağlantı açarak biliyorum etkin veritabanı bağlantısı) var çünkü. Ama ben bu konuda daha fazla açıklık olmak istiyorum. Bunu yapmak çok yanlış mı? Neden? Ve ben de bu iyi alternatifler hakkında bilmek istiyorum.
İşte bir sınıf:
class DB {
private $conn;
//database data
private $dbhost;
private $dbname;
private $dbuser;
private $dbpass;
/**
* Constructor
* @dbhost string the database host
* @dbname string the database name
* @dbuser string the database username
* @dbpass string the database password
*/
public function __construct ($dbhost, $dbname, $dbuser, $dbpass)
{
$this->dbhost = $dbhost;
$this->dbname = $dbname;
$this->dbuser = $dbuser;
$this->dbpass = $dbpass;
}
/**
* Connects to mysql database
*/
private function open ()
{
$this->conn = mysql_connect ($this->dbhost, $this->dbuser, $this->dbpass)
or die ("Error connecting to database");
mysql_select_db ($this->dbname) or die ("Error selecting database");
}
/**
* Closes the connection to a database
*/
private function close ()
{
mysql_close($this->conn);
}
/**
* Executes a given query string
* @param string $query the query to execute
* @return mixed the result object on success, False otherwise
*/
public function query ($query)
{
$this->open();
$result = mysql_query($query, $this->conn)
or die ("Error executing query ".$query." ".mysql_error());
$this->close();
return $result;
}
}