class mySQL{
var $host;
var $username;
var $password;
var $database;
public $dbh; //Variable for storing connection
public function connect($set_host, $set_username, $set_password, $set_database){
$this->host = $set_host;
$this->username = $set_username;
$this->password = $set_password;
$this->database = $set_database;
$this->dbh = mysql_connect($this->host, $this->username, $this->password)or die("cannot connect"); //Store data connection specifier in object
mysql_select_db($this->database)or die("cannot select DB");
}
public function query($sql)
{
return mysql_query($sql,$this->dbh); //Specify connection handler when doing query
}
public function fetch($sql)
{
return mysql_fetch_array($this->query($sql));
}
}
$connect = new mySQL();
$connect->connect('localhost', 'user', 'pass', 'database1');
$settings_query = mysql_query("SELECT * FROM settings", $connect->dbh); //Specify connection handler when doing query
$settings = mysql_fetch_array($settings_query);
//With query method in object you can do this:
$settings_query = $connect->query("SELECT * FROM settings"); //Use object method to query
$settings = mysql_fetch_array($settings_query);
//with fetch method in object you can just do this:
$settings = $connect->fetch("SELECT * FROM settings");
echo $settings['title'];
Указание обработчика соединения, особенно легко с методом запроса, позволяет легко делать такие вещи, как:
$connect1 = new MySQL();
$connect2 = new MySQL();
$connect1->connect('localhost','user','pass','database1');
$connect2->connect('localhost','user','pass','database2');
и с легкостью обрабатывает более одного соединения объекта / базы данных sql одновременно и помогает устранить любую путаницу, которая может возникнуть.
Это, конечно, в дополнение к правильной ссылке на переменные объектов внутри себя ($this->var
).