Обычно соединения происходят после загрузки страницы. AKA
class Database{
public function connect()
{
$this->connection = mysql_connect();
}
// This will be called at the end of the script.
public function __destruct()
{
mysql_close($this->connection);
}
public function function query($query)
{
return mysql_query($query, $this->connection);
}
}
$database = new Database;
$database->connect();
$database->query("INSERT INTO TABLE (`Name`) VALUES('Chacha')");
По сути, вы открываете соединение в начале страницы, закрываете его на конечной странице. Затем вы можете делать различные запросы на странице и ничего не делать с подключением.
Вы можете даже сделать mysql_connect в конструкторе, как подсказывает Эрик.
Чтобы использовать вышеупомянутое с использованием глобальных переменных (не предлагается, поскольку это создает глобальное состояние), вы должны сделать что-то вроде
Global $db;
$db = new Database;
// ... do startup stuff
function doSomething()
{
Global $db;
$db->query("Do Something");
}
О, и никто не упомянул, что вам не нужно передавать параметр. Просто подключите
mysql_connect();
Тогда mysql_query будет использовать только последнее соединение, независимо от области действия.
mysql_connect();
function doSomething()
{
mysql_query("Do something");
}
По комментариям:
Я думаю, вы должны использовать mysql_pconnect () вместо mysql_connect (), потому что mysql_connect () не использует пул соединений. - ночной кодер
Возможно, вы захотите подумать, используете ли вы mysql_connect
или mysql_pconnect
. Тем не менее, вы все равно должны подключаться только один раз за сценарий.