Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] MySQL Abfrage per Prepared Statement

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] MySQL Abfrage per Prepared Statement

    Hallo zusammen

    Ich probiere seit geraumer Zeit eine MySQL Abfrage mit Prepared Statement zu machen, welche mir nur zum Teil gelingt. Die Abfrage gelingt mir auch, aber ich kann die Antwort des Servers nicht Speichern.
    Ich gebe, um das ganze zu teste, am Ende noch die ganzen Variablen aus, aber da diese lehr sind, wird nichts ausgegeben.
    Könntet Ihr mir schreiben, was ich falsch mache?

    PHP-Code:
    if ($stmt $mysqli->prepare("SELECT user_id, username, pw, prename, lastname, priv FROM members WHERE email = '" $email "' LIMIT 1")) {
                
    // $stmt->bind_param('s', $email);
                
    $stmt->execute();
                
    $stmt->bind_result($user_id$username$db_password$prename$lastname$right);
                echo 
    "<br />User: " $user_id;
                echo 
    "<br />Username: " $username;
                echo 
    "<br />Password: " $db_password "<br />"
    Jetzt schon mal danke.
    Freundliche Grüsse XonneX


  • #2
    "SELECT user_id, username, pw, prename, lastname, priv FROM members WHERE email = '" . $email . "' LIMIT 1"
    Genau so nutzt man Prepared Statements nicht. Deine Werte gehören über entsprechende Parameter an das Statement gebunden.

    PS: Fortgeschritten sieht anders aus.

    Kommentar


    • #3
      Wie glaubst du, erkennt PHP welchen Wert du "preparen" willst / du meinst? Benutz bitte mal google, da gibt es viele Beispiele wo du es gut erkennen kannst - speziell die queries und die darin enthaltenen ?-Zeichen.
      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
      PHP.de Wissenssammlung | Kein Support per PN

      Kommentar


      • #4
        Ich danke euch für die schnellen Antworten. Ich werde mal eure Tipps beherzigen und mich im Zweifelsfall wieder melden.
        @lottikarotti sorry, habe auf Anfänger umgestellt, bin kein fortgeschrittener und das wüsste ich auch, hätte ich doch nur mal richtig überlegt
        MFG XonneX

        Kommentar


        • #5
          Zitat von lottikarotti Beitrag anzeigen
          Deine Werte gehören über entsprechende Parameter an das Statement gebunden.

          PS: Fortgeschritten sieht anders aus.
          Wenn du dir die Coding-Examples auf der von lottikarotti verlinkten Website ansiehst, wird sicher Einiges klarer

          Kommentar


          • #6
            So ich habe es angeschaut und neugeschrieben.
            Es funktioniert, aber ich wollte trotzdem nochmal kurz fragen, ob ich dies richtig angewandt habe.
            Hier der neue Code:
            PHP-Code:
            $stmt $mysqli->prepare("SELECT user_id, username, pw, prename, lastname, priv FROM members WHERE email = ? LIMIT 1")
            $stmt->bind_param('s'$email);
            $stmt->execute();
            $stmt->bind_result($user_id$username$db_password$prename$lastname$right);
            $stmt->fetch(); 

            Kommentar

            Lädt...
            X