Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben (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 von LukOnline
Geschrieben

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ß

Geschrieben

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?

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...