PHP:ssa pieni ongelma tietokantakyselyn kanssa (PDO)
Kutsun koodissani metodia, joka käyttää luokkaa käsitelläkseen eräänlaisia sql-kyselyjä, joka puolestaan se kutsuu luokkaa (Database)
jossa itse tietokantakysely toteutetaan (your own PDO PHP Class).
Siis metodi, jossa kätetään luokkaa, jossa käytetään vielä toista luokkaa. Kutsutaan niitä nimillä tietynlaiaisaKyselyitäVartenOlevaLuokka ja Database.
public method eiToimi() { $kysely = new tietynlaiaisaKyselyitäVartenOlevaLuokka(...); $kysely->doQuery(...); $kysely->databaseConnection->getRowCount(); // Kutsutaan luokassa A olevaa oliota databaseConnection (public) ja metodia ->getRowCount(); virhe }
Luokka A:ssa luodaan tietokantayhteys ($this->databaseConnection = new Database(...)) ja suoritetaan kysely (käytetään luokkaa Database).
public $databaseConnection;
Yritän kutsua tästä "your own PDO PHP Class" metodia joka palauttaa kyselyn rivimäärän getRowCount().
Itselläni se on muodossa ("stmt" vaihdettu koko koodissa "query"):
class Database { ....... public function getRowCount() { return $this->query->rowCount(); } }
Virheilmoitus on:
Fatal error: Call to a member function rowCount() on a non-object in ...
Mikä tässä nyt on niin pielessä?
Selvästikään $this->query
ei sisällä mitään objektia, jolloin myöskään mitään jäsenfunktiota ei voi kutsua. Olet tunaroinut jotain. Mahdoton sanoa tuon koodin perusteella tarkemmin, mitä.
Homma selkis. Ongelma oli siinä ettei kysely ylipäätänsä suoriutunut (ei siis täten voida hakea rivimäärää yms.). Vika oli eräässä tarkastuksessa jota olin joskus mennyt "korjailemaan".
koodi on nyt kutakuinkin muotoa;
Aihe on jo aika vanha, joten et voi enää vastata siihen.