Връзка с база данни и функция.

semprom

Registered
Здравейте.
Имам една функция да речем query. С нея се свързвам с базата данни и изпълнявам заявката. Проблема е, че ако примерно два пъти извикам query два пъти ще се свърже с базата данни. Има ли начин щом веднъж съм се свързал с базата данни, да не трябва да го правя пак, и да си използва старата връзка. Пробвах да сложа global на променливата за връзката, но получавам грешка
Notice: Trying to get property of non-object in

все едно не съм се свързал.
Не искам да слагам връзката извън функцията query, защото имам страници които не изискват база данни, и няма смисъл да се свързва напразно.

Имате ли някаква идея как мога да го направя това?
Благодаря.
 
Това е защото от променливата искаш да извикаш обект.
А за да не ти прави повече връзки към базата данни примерно можеш да ползваш един опростен singleton

class mydb {

protected $connection = null;
private function __contruct($data)
{

self::$connection = mysql_connect(....);

}


public static getConection()
{

if(self::$connecton == null) self::$connecton = new mydb();
return self::$connecton ;

}

}
 
index каза:
Това е защото от променливата искаш да извикаш обект.
А за да не ти прави повече връзки към базата данни примерно можеш да ползваш един опростен singleton

class mydb {

protected $connection = null;
private function __contruct($data)
{

self::$connection = mysql_connect(....);

}


public static getConection()
{

if(self::$connecton == null) self::$connecton = new mydb();
return self::$connecton ;

}

}

Понеже не съм много в час с класовете, ще може ли да ми дадеш пример без класове?

Благодаря.
 
semprom каза:
index каза:
Това е защото от променливата искаш да извикаш обект.
А за да не ти прави повече връзки към базата данни примерно можеш да ползваш един опростен singleton

class mydb {

protected $connection = null;
private function __contruct($data)
{

self::$connection = mysql_connect(....);

}


public static getConection()
{

if(self::$connecton == null) self::$connecton = new mydb();
return self::$connecton ;

}

}

Понеже не съм много в час с класовете, ще може ли да ми дадеш пример без класове?

Благодаря.
"Набиваш" връзката в една статична променлива, я ползваш нея. Не би трябвало да прави повече инстанции

function &mydb() {

static $con;

if($con==null) $con = mysql_connection...()...


return $con;
}
И ползваш този метод за да изтеглиш връзката за базата данни.
 
index каза:
semprom каза:
index каза:
Това е защото от променливата искаш да извикаш обект.
А за да не ти прави повече връзки към базата данни примерно можеш да ползваш един опростен singleton

class mydb {

protected $connection = null;
private function __contruct($data)
{

self::$connection = mysql_connect(....);

}


public static getConection()
{

if(self::$connecton == null) self::$connecton = new mydb();
return self::$connecton ;

}

}

Понеже не съм много в час с класовете, ще може ли да ми дадеш пример без класове?

Благодаря.
"Набиваш" връзката в една статична променлива, я ползваш нея. Не би трябвало да прави повече инстанции

function &mydb() {

static $con;

if($con==null) $con = mysql_connection...()...


return $con;
}
И ползваш този метод за да изтеглиш връзката за базата данни.

Благодаря! :)
 
semprom каза:
index каза:
semprom каза:
Понеже не съм много в час с класовете, ще може ли да ми дадеш пример без класове?

Благодаря.
"Набиваш" връзката в една статична променлива, я ползваш нея. Не би трябвало да прави повече инстанции

function &mydb() {

static $con;

if($con==null) $con = mysql_connection...()...


return $con;
}
И ползваш този метод за да изтеглиш връзката за базата данни.

Благодаря! :)
Работи ли ? Защото го писах тука в форума и не съм го тествал...
 

Back
Горе