Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

  • Autor

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

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ß

  • Autor

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 Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.