Pereiti prie turinio

Nesiseka su klasėmis


Rekomenduojami pranešimai

Sveiki, gal yra žmonių kurie galėtų man pagelbėti? :) taigi aš PDO funkcijas verčiu į sau prijimtinas funckijas ,pvz: query - get, fetchAll - rodo(), ir pan :) . Taigi susikuriau prisijungimą, viskas veikia bet man su klasėm na gal ir nelabai gerai sekasi... bet suprantu jas ir noriu savo klaidą isiaiškinti :). Štai kodas:

 

<?php

class get_DB {

public function __construct ($nick, $pass, $db, $dbname) {
try {
	$kazkas = new PDO('mysql:host='.$db.';dbname='.$dbname.'', $nick, $pass);
	return $kazkas;
	} catch (PDOException $a){
		die('Klaida jungiantis i <b>DB</b>!');
	}
}

public function query ($k) {
	return get_DB::query($k);
}

}

$db = new get_DB('root','','localhost','avataras');
$imam = $db->query("SELECT * FROM users");

?>

 

Meta klaidą: ( ! ) Fatal error: Maximum function nesting level of '100' reached, aborting! in C:\Users\wamp\www\b.php on line 15

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Nieko ji man nepalengvins :D tiesiok norisi susikurti kaip ir savo funkcijas nenaudoti PDO funkcijų, jas naudoti tik klasėje bet iš tų klasė funkcijų imti sau. Na pvz yra užklausa ant PDO/MYSQLI:

$a = query("SELECT * FROM lentele");

O aš noriu kad butų:

$a = get("SELECT * FROM lentele");

 

Tiesiok man reikia pasidaryti užklausą o toliau pats :)

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php
class get_DB {
   private $pdo;

   public function __construct ($nick, $pass, $db, $dbname) {
       try {
           $this->pdo = new PDO('mysql:host='.$db.';dbname='.$dbname.'', $nick, $pass);
       } catch (PDOException $a){
           die('Klaida jungiantis i <b>DB</b>!');
       }
   }

   public function query ($k) {
       return $this->pdo->query($k);
   }

}

$db = new get_DB('root','','localhost','avataras');
$imam = $db->query("SELECT * FROM users");

 

Dėkoju visiems bandžiusiems man padėti :) tereikėjo parent:: metodą naudoti ;). Ačiū visiems! :)

Kokį parent, jei tavo get_DB klasė nieko neextendina?

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Dėkoju visiems bandžiusiems man padėti :) tereikėjo parent:: metodą naudoti ;). Ačiū visiems! :)

parent metodas yra naudojamas, kai kreipesi i extendinta klase, tau reikia self::. Aplmai paziurek nuoroda is mano pries tai esamo posto - ten viskas aprasyta graziai.

Redagavo apieviska
Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php
class get_DB {
   private $pdo;

   public function __construct ($nick, $pass, $db, $dbname) {
       try {
           $this->pdo = new PDO('mysql:host='.$db.';dbname='.$dbname.'', $nick, $pass);
       } catch (PDOException $a){
           die('Klaida jungiantis i <b>DB</b>!');
       }
   }

   public function query ($k) {
       return $this->pdo->query($k);
   }

}

$db = new get_DB('root','','localhost','avataras');
$imam = $db->query("SELECT * FROM users");

 

 

Kokį parent, jei tavo get_DB klasė nieko neextendina?

 

<?php

class get_DB extends PDO {

public function __construct($nick, $pass, $db, $dbname) {

try {

parent::__construct("mysql:host=$db;dbname=$dbname", $nick, $pass);

} catch (PDOException $a){

die('Klaida!');

}

}

 

function get ($k) {

return parent::query($k);

}

 

function skaic ($ka) {

return $ka->rowCount();

}

 

}

 

$db = new get_DB('root','','localhost','avataras');

$ka = $db->get("SELECT * FROM users");

foreach ($ka as $a => $b){

echo $b['nick'].'<br>';

}

?>

 

Aš jau ją persidariau :) įterpiu PDO ir tiesiok keičiu funkcijas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

<?php

class get_DB extends PDO {

public function __construct($nick, $pass, $db, $dbname) {

try {

parent::__construct("mysql:host=$db;dbname=$dbname", $nick, $pass);

} catch (PDOException $a){

die('Klaida!');

}

}

 

function get ($k) {

return parent::query($k);

}

 

function skaic ($ka) {

return $ka->rowCount();

}

 

}

 

$db = new get_DB('root','','localhost','avataras');

$ka = $db->get("SELECT * FROM users");

foreach ($ka as $a => $b){

echo $b['nick'].'<br>';

}

?>

 

Aš jau ją persidariau :) įterpiu PDO ir tiesiok keičiu funkcijas.

dar didesne nesamone padarei, negu buvo.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Aš jau ją persidariau :) įterpiu PDO ir tiesiok keičiu funkcijas.

Aš labai tikiuosi, kad su tavo programavimo darbais man neteks susidurti. Rašai kažkokias nesamones. Klasė pusiau lietuviškai puasiau angliškai parašyta, metodų pavadinimai neatspindi ką jie daro, o tas tavo "Klaida!" tai tiesiog žudo. Būtų įdomu pamatyti kaip tu debugintum, gavęs tokį klaidos pranešimą <_<

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.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

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