Ahoi dedlfix
Tach!
> // Datensatz aus der Datenbank auslesen > $stmt = $mysqli->prepare("SELECT h_id, h_titel, h_titelURL, h_status FROM >web_hersteller WHERE h_id=?"); > $stmt->bind_param("s", $hersteller); > $stmt->execute(); > $stmt->bind_result($h_id, $h_titel, $h_titelURL, $h_status); > $stmt->fetch(); > $stmt->close();
wäre etwas, was ich in eine Funktion auslagern würde - es wird ja vermutlich im gesamten Projekt mehrere DB-Abfragen geben, Parameter sql-Statement, die bind-params und die bind_results (letztere zwei als Array/Objekt) ...
Da gibt es nur ein ganz unschönes Problem. bind_param() und bind_result() binden per Referenz. Und es ist nicht sehr einfach, ein Array mit variabler Elementeanzahl per Referenz übergeben funktionierend hinzubekommen. Das heißt, es geht schon, aber nur mit Trick 17 von hinten durch die Brust ins Auge. Übersichtlich und verständlich sieht anders aus. Am besten ist es, auf PDO zu wechseln, da ist das deutlich anwenderfreundlicher gelöst und man bekommt die Werte zurückgeliefert, ohne dass man vorher sozusagen Variablen abgeben muss, die dann gefüllt werden.
Dieses Binding in der mysqli-Extension ist nur was für sofortige Verwendung. Auslagern in eine Funktion ist zwar grundsätzlich keine schlechte Idee, aber in dem Fall sollte man lieber drauf verzichten (oder zugunsten von PDO auf mysqli).
Oder http://framework.zend.com/manual/current/en/modules/zend.db.table-gateway.html
und selektiv einbinden mit
require_once $config["libPath"] . "/Zend/Loader/StandardAutoloader.php";
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
Dank und Gruß,
bob from berlin