Gå til innhold

Erstatning for $variabel->res[] under extends


Anbefalte innlegg

Under normale tilstander laster jeg database-klassen på normal måte ved å kalle den, og bruker $db->Query("SELECT ...", "NavnPåSpørring"); og bruker $db->res['navnPåSpørring']; for å få resultatene og evt. $db->num['NavnPåSpørring']; for å få antall rader.

 

Men i et annet tilfelle er jeg nødt til å bruke class User extends Db, og her får jeg brukt Db::Query("SELECT ...", "NavnPåSpørring"); men sitter fast på hvordan jeg kan få ut resultatene fra klassen (der jeg tidligere brukte $db->res['NavnPåSpørring'] eller $db->num['NavnPåSpørring']). Har noen forslag til hvordan jeg kan bruke dette?

 

Db-klassen:

 

class Db {
var $handle;
var $num;
var $res;

/*public $query;
protected static $_instance = null;
public static function getInstance($mysql_host, $mysql_user, $mysql_pass, $mysql_db)
{
	if(is_null(self::$_instance))
	{
		self::$_instance = new self($mysql_host, $mysql_user, $mysql_pass, $mysql_db);
		return self::$_instance;
	}
}*/

function Connect($mysql_host, $mysql_user, $mysql_pass, $mysql_db)
{
	$this->handle = @mysql_connect($mysql_host, $mysql_user, $mysql_pass) or die("CONNECTION FAILED:". $mysql_host);
	@mysql_select_db($mysql_db);
}

function Query($query, $store = "flush")
{
	if (stristr($query, "SELECT"))
	{
		$check = TRUE;
		$this->res[$store] = @mysql_query($query, $this->handle);
	} else {
		$check = TRUE;
		$this->res[$store] = @mysql_unbuffered_query($query, $this->handle);
	}

	if (mysql_error())
	{
		echo mysql_error() . "<br>\n";
		echo $query;
	}

	if ($check === TRUE)
	{
		$this->num[$store] = @mysql_num_rows($this->res[$store]);
	} else {
		$this->num[$store] = @mysql_affected_rows($this->res[$store]);
	}
}

Lenke til kommentar
Videoannonse
Annonse

Jeg skjønner ikke hvorfor du vil at user-klassen skal arve fra database-klassen. Går ut ifra at du vil kjøre spørringer mot databasen fra user-klassen, men dette er ikke måten å gjøre database-klassen tilgjengelig derifra på. Når det er sagt, så skal det sies at dersom du velger å gjøre det som du gjør, så må ikke kalle statisk på database-metodene dine.

 

<?php
   class User extends Db {
       public function whatever () {
           $this -> Query ( 'SELECT ..', 'n00bcake' );
           echo $this -> num ( 'n00bcake' );
       }
   }
?>

Endret av Jonas
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...