LukOnline Geschrieben 18. Mai 2011 Teilen Geschrieben 18. Mai 2011 Hallo zusammen, für meine Webanwendung wollte ich mir eine Funktion Query() erstellen (ich nutze Prepared Statements und mysqli). Bisher war die Abfrage ja immer einfach, da ich den Text direkt mit echo Ausgeben konnte. Bei mehreren Abfragen sieht das aber unschön aus wenn man immer wieder $DB->prepare, $Query->bind_result($Spalte),... schreiben muss. Deswegen wollte ich die eigentliche Abfrage in eine Funktion packen und über Query($SQL) aufrufen. Doch jetzt komme ich ins grübeln. Was muss ich in der fetch-Schleife meiner Funktion machen? Ich muss ja ein Objekt erstellen / befüllen und dann mit return zurückgeben. Was ist dafür der richtige Datentyp? $DB = new mysqli("localhost", "user", "pass", "db"); $Query = $DB->prepare("SELECT SPALTE FROM TABELLE"); $Query->execute(); $Query->bind_result($Spalte); while($Query->fetch()) { // ALT: echo($Spalte); // NEU: ??? } $Query->close(); [/PHP] Gruß, Luk Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
CSharp92 Geschrieben 18. Mai 2011 Teilen Geschrieben 18. Mai 2011 Hallo, Definiere doch ein Array und leg dort alle Daten ab. Den kannst du mittels return zurück geben. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LukOnline Geschrieben 19. Mai 2011 Autor Teilen Geschrieben 19. Mai 2011 (bearbeitet) Hey, danke für deine Antwort. Hatte ganz vergessen, dass ich keinen Datentyp benötige... (immer dieses C# in meinem Kopf^^) Ich habe es nun so gelöst: function Query($SQL) { global $DB; $Result = $DB->query($SQL); if (!$Result) { echo('Ungültige Abfrage: ' . $DB->error); } return $Result; } [/PHP] Das dumme ist nur, dass der Query dann nicht geschlossen wird.... Gibt das Probleme ab einer gewissen Anzahl offener Verbindungen oder werden die am Ende der PHP-Seite automatisch geschlossen? Bearbeitet 19. Mai 2011 von LukOnline Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
CSharp92 Geschrieben 19. Mai 2011 Teilen Geschrieben 19. Mai 2011 Hallo, das weiß Ich nicht. Ich arbeite nicht mit mysqli. Ansonsten kannst du ja eine function schreiben, die das Closen übernimmt. Aber ich denke, dass dieses nicht das Problem sein sollte. Lass es offen. Sollte ein erhöhtes Sicherheitsrisko entstehen, soll sich hier einer zu Wort melden, der sich damit näher beschäftigt. Gruß Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
LukOnline Geschrieben 20. Mai 2011 Autor Teilen Geschrieben 20. Mai 2011 Hallo Ich würde trotzdem vermuten, die Verbindung(en) werden am Ende der Seite geschlossen. Mein DB-Objekt wird ja dann auch geschlossen. Oder? Zumindest bei Compiler-Sprachen macht das ja der Destruktor. Hat PHP auch sowas? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 20. Mai 2011 Teilen Geschrieben 20. Mai 2011 Zumindest bei Compiler-Sprachen macht das ja der Destruktor. Hat PHP auch sowas? Compilersprachen gibt es nicht! PHP: Konstruktoren und Destruktoren - Manual Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.