Kein result mit mysqli

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Kein result mit mysqli

    Hi!

    Ich frage die Datenbank foldendermaßen ab:

    Quellcode

    1. $stmt = mysqli_prepare($sql, "SELECT password, rang FROM user WHERE name = ?;");
    2. mysqli_stmt_bind_param($stmt, "s", $_POST["name"]);
    3. mysqli_stmt_bind_result($stmt, $user["password"], $user["rang"]);
    4. mysqli_stmt_fetch($stmt);
    5. dump($user);
    6. if (md5($_POST["password"]) == $user["password"]) {
    7. die("login erfolgreich");
    8. } else {
    9. die("login fehlgeschlagen");
    10. }


    Dabei erhalte ich als Ergebnis aber nur:

    Quellcode

    1. array(2) {
    2. ["password"]=>
    3. &NULL
    4. ["rang"]=>
    5. ∫(0)
    6. }
    7. login fehlgeschlagen


    Ich weiss aber absolut nicht, warum ich keine brachbaren Ergebnisse im Array $user habe. Vielleicht ist es auch schon einfach zu spät...

    Für nen heissten Tipp wäre ich dankbar!

    Gruß,
    Max123
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Da es schon spät ist, wie du schon richtig erkannt hast, würde ich die traditionelle methode des debuggens vorschlagen :)
    Einfach mal einen standard SELECT machen und schauen was raus kommt ohne schnickschnack, dann alles step by step hinzufügen und du wirst den Fehler bis auf die Zeile genau eingrenzen können :)

    Try&Error

    so long
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • *Brett vorm Kopf wegnehm*
    Ja, nach einer guten Runde Schlaf habe ich das grad auch gemerkt. Aber danke! :D

    Ich wollte auch mal eine Datenbankklasse schreiben, wo ich die mysqli Funktionen verwende, damit man vor SQL Injection geschützt ist und die Anwendung aber immer noch einfach ist.
    Aber ich komme atm damit nicht zurecht, dass man eine variable Menge an Parametern z.B. bei mysqli_bind_param() braucht.
    Die Japaner glauben jetzt auch, sie könnten den Superrechner verkaufen. Das wäre
    so, als würde man einen Jumbo-Jet nehmen, vorne und hinten die Spitzen absägen,
    davon 10 Stück zusammenschweißen und als ultimativen Super-Jet verkaufen.
  • Was willst du denn eigentlich erweitern? MySQLi steht dir ja gleichzeitig als Klasse und als Funktion zur Verfügung.

    Quellcode

    1. //$sql = mysqli_connect('localhost', 'my_user', 'my_password', 'world');
    2. $stmt = mysqli_prepare($sql, "SELECT password, rang FROM user WHERE name = ?;");
    3. mysqli_stmt_bind_param($stmt, "s", $_POST["name"]);
    4. mysqli_stmt_bind_result($stmt, $user["password"], $user["rang"]);


    Quellcode

    1. //$sql = new mysqli('localhost', 'my_user', 'my_password', 'world');
    2. $stmt = $mysqli->prepare("SELECT password, rang FROM user WHERE name = ?;");
    3. $stmt->bind_param("s", $_POST["name"]);
    4. $stmt->bind_result($user["password"], $user["rang"]);


    Wenn du bind_param nicht gerade verändern magst, leitest du sie einfach ab ohne sie zu verändern.

    Im [phpdoc]manual[/phpdoc] gibts auch bereits ein paar abgeleitete Exemplare.