Pereiti prie turinio

public static f-joj gauti duomenis is db


Rekomenduojami pranešimai

Sveiki,

 

bandau susikurti public static f-ją, kurią galėčiau naudoti kitose klasėse ir niekaip nesigauna (pripažįstu, nemoku) iš duombazės išsitraukti duomenų. Klasės fragmentas toks:

protected static $usernamebyid = "";
protected $db, $config=array();

public function __construct($db,$config){
       $this->config=$config;
       $this->db=$db;
       $this->db->object=TRUE;
}

public static function get_username($id) {
       if (empty($id)) return self::$usernamebyid = e("anonymous");

       $user = $this->db->get("user",array("id"=>"?"),array("limit"=>1),array($id)); // sita vieta neaisku
       if ($user) return self::$usernamebyid = $user->username;
       else return self::$usernamebyid = e("unknown");
   }

 

naudočiau ją taip:

$this->get_username($user_id)

ir

Class::get_username($user_id)

 

Ačiū už pagalbą.

Redagavo Donatis07
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na, visų pirma, tu nenori kiekvieno objekto kūrimo metu nurodinėti duomenų bazės. Čia tai faktas. Apskritai kitaip žiūrėk į tą reikalą.

Iš bėdos, gali duomenų bazės objektą dėti kaip statinį klasės kintamąjį ir įmesti objektą sistemos užsikrovimo metu. Tada jį galėsi naudoti normaliai.

Redagavo Satisfaction
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nezinau kokius tutorial skaitai, bet tikrai nepatarciau pagal juos mokytis.

 

Jei konkreciai dirbant su duomenu bazemis, tai gal net patarciau naudoti ORM, tik gal kiek sudetingiau pradzioje pradeti, bet bent jau kodas bus paprastas ir tvarkingas. Pavyzdys su Eloquent ORM (http://laravel.com/docs/4.2/eloquent)

 

1. reikia includinti ORM

 

2. pati klase

class User extends Model {
  // jokio kodo klaseje nereikia rasyti, viskas ko reikia User klase jau zino, kadangi extendino Model klase :)
}

 

3. Jos naudojimas

$user = User::find($user_id);
echo $user->name;

 

viskas, paprasciau ir greiciau su ziupsneliu magijos :)

Redagavo wwwOgrasLt
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...