Lieber Besucher, herzlich willkommen bei: Ubuntu-Forum & Kubuntu-Forum | www.Ubuntu-Forum.de. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
class abfrage extends connection { //Führt SQL-Abfragen aus $project = $this->db_object->prepare($sql); $project->execute(); } class anwendung extends abfrage { //Soll Inhalte aus der DB anzeigen $row=$this->project->fetch(); } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »zettberlin« (11.01.2013, 16:01)
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
class abfrage extends connection { //Führt SQL-Abfragen aus public String executeQuery(String sql) { $project = $this->db_object->prepare($sql); $project->execute(); return $project; } } class anwendung extends abfrage { //Soll Inhalte aus der DB anzeigen $row=executeQuery("Select * from bla"); } |
Zitat von ».user«
doch, die ganze Welt besteht aus fenstern!
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
Hey,
wenn du schon Klassen hast, dann stopf doch ein Methode rein, also so:
Quellcode
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 class abfrage extends connection { //Führt SQL-Abfragen aus public String executeQuery(String sql) { $project = $this->db_object->prepare($sql); $project->execute(); return $project; } } class anwendung extends abfrage { //Soll Inhalte aus der DB anzeigen $row=executeQuery("Select * from bla"); }
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
class abfrage extends connection { //Führt SQL-Abfragen aus //Kann in PHP wohl alles zurückgeben public function executeQuery($sql) { $project = $this->db_object->prepare($sql); $project->execute(); return $project; //Resource $project zurückgeben } } class anwendung extends abfrage { //Soll Inhalte aus der DB anzeigen public function machWasTolles($sql) { $row=executeQuery($sql)->fetch(); return $row } } |
Quellcode |
|
1 2 |
$anwendung = new anwendung(); $row = $anwendung->machWasTolles("Select * from bla"); |
Zitat von ».user«
doch, die ganze Welt besteht aus fenstern!
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
Irgendwie so sollte es eigentlich funktionieren:
Zitat
$anwendung = new anwendung();
$row = $anwendung->machWasTolles("Select * from bla");
- Methoden sind in Klassen eigentlich immer notwendig, ansonsten kannst du auch einfach bei Funktionen bleiben.
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public $row;
public $ressource;
public function get_it($row_id){
$this->$ressource=$this->db_object->prepare($sql);
$this->$ressource->execute();
}
public function fetch_it($row_id){
$row=$this->ressource>fetch()
}
|
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »zettberlin« (12.01.2013, 00:50)
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
public $row;
public $ressource;
public function get_it($row_id){
$this->$ressource=$this->db_object->prepare($sql);
$this->$ressource->execute();
}
public function fetch_it($row_id){
$row=$this->ressource>fetch()
}
|
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
class abfrage extends connection {
private $mySqlQuery;
private $resource;
//sql-Query setzen
public function setQuery($sqlQuery)
{
$mySqlQuery = $sqlQuery;
}
//sql-Query ausführen und $resource setzen
public function executeQuery()
{
$this->$resource = $this->db_object->prepare($sql);
$this->$resource->execute();
}
//jeweils eine Row vom Ergebnis zurückgeben
public function getRow()
{
return $this->$resource->fetch();
}
}
$abfrage = new abfrage()
$abfrage->executeQuery();
$abfrage->setQuery("Select * from bla");
$row1 = $abfrage->getRow();
$row2 = $abfrage->getRow();
//Irgendwelche tollen Änderungen an DB, sodass Query neu abgesetzt werden muss
$abfrage->executeQuery();
//Mit neuem content
$row1 = $abfrage->getRow();
|
Zitat von ».user«
doch, die ganze Welt besteht aus fenstern!
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
Mal schaun, ob ich diesmal deinen Nerv treffen =)
PHP-Quelltext
1 2 3$abfrage = new abfrage() $abfrage->executeQuery(); $abfrage->setQuery("Select * from bla");
Genau an dieser Stelle möchte ich eben *keinen* SQL-code. Der bleibt nämlich (wie meistens) immer gleich. Nur die Anzeige selbst mit fetch bauche ich mehrmals in verschiedenen Programmkontexten.
Falls fetch einen Non-object Fehler ausgibt, hast du wohl auch kein Object, sondern irgendwas anderes davor ist schiefgelaufen, sodass dieser nur null oder false enthält. Deshalb halt entsprechende Überprüfungen auf Ergebnisse noch einbauen!
Dachte ich auch erst aber zumindest alle PDO-Aufrufe fange ich mit try/catch ab und außerdem: wenn ich die Abfrage und das fetch in der gleichen Methode habe, funktioniert es. Das Problem scheint die Übergabe des Abfrageergebnisses in einer Variablen zu sein, ich habe es übrigens auch schon mit return versucht:
PHP-Quelltext
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19class abfrage{ public $ressource; public function get_it(){ $this->ressource->execute(); return $this->ressource; } public function fetch_it{ $row=$this->get_it()->fetch(); } }
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
class abfrage
{
public $dbh;
public $sqlQuery;
public $res;
public $rows;
function __construct()
{
$this->dbh = new PDO('mysql:host=localhost;dbname=dbs5','bla_root','bla_pass');
}
function setQuery($sql)
{
$this->sqlQuery = $sql;
}
function executeQuery()
{
$this->res = $this->dbh->prepare($this->sqlQuery);
$this->res->execute();
}
function fetchAll()
{
$this->rows=$this->res->fetchAll();
}
function getAll()
{
return $this->rows;
}
}
$abfrage = new abfrage();
$abfrage->setQuery("Select * from bla");
$abfrage->executeQuery();
$abfrage->fetchAll();
var_dump($abfrage->getAll());
var_dump($abfrage->getAll());
|
Zitat von ».user«
doch, die ganze Welt besteht aus fenstern!
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »Soni« (12.01.2013, 15:35)
Benutzerinformationen überspringen
User
Registrierungsdatum: 08.06.2006
Architektur: 64-Bit PC
Desktop: KDE4
Andere Betriebssysteme: fedora jam 17
Sponsorenwerbung: |
Hardware, Computer, PCs, Notebooks & Laptops mit Linux |
Forensoftware: Burning Board®, entwickelt von WoltLab® GmbH
Individuelle Notebooks Laptops - Individuelle Computer PCs - Linux Notebooks & Computers
Lastminute - Ubuntu Linux - Abmahnung - Geek und Nerd Shirt Shop
T-Shirts - sanierung wien