Mysqli While Schleife Problem

  • PHP

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von Tobias17.

    Mysqli While Schleife Problem

    Hay Leute, hab da so nen kleines Problem und finde es nicht.
    Wahrscheinlich schon zu müde :D

    Vielleicht könnt ihr mir da helfen da ich grad erst mit Mysqli anfange

    Folgendes Problem:

    Ich hab ne Whileschleife und der soll mir den Datensatz von Person x auslesen.
    Dazu hab ich im sql Code ein WHERE eingebaut.

    Folgender Code funktioniert:

    PHP-Quellcode

    1. $sql = 'SELECT * from teamspeakserver WHERE USERNAME = "info@email.com"';


    Schreibe ichs dann aber so, da er das ja aus ner Variable auslesen soll

    PHP-Quellcode

    1. $sql = 'SELECT * from teamspeakserver WHERE USERNAME = ' . $usrmail . '';


    bekomme ich folgende Fehlermeldung:

    Quellcode

    1. Fatal error: Call to a member function fetch_object() on a non-object


    Whileschleife:

    PHP-Quellcode

    1. $abfrage = $db->query($sql);
    2. <?php
    3. while($objekt = $abfrage->fetch_object())
    4. {
    5. echo
    6. '
    7. <tr>
    8. <td>'. $objekt->ID .'</td>
    9. <td>'. $objekt->TSNAME .'</td>
    10. <td>'. $objekt->PORT .'</td>
    11. <td>@mdo</td>
    12. </tr>
    13. ';
    14. }
    15. ?>


    Danke schonmal im vorraus

    PHP-Quellcode

    1. <?php
    2. $stmt = $db->prepare('SELECT * FROM teamspeakserver WHERE USERNAME = ?');
    3. if(!$stmt) {
    4. // Fehler...
    5. }
    6. if(!$stmt->bind_param('s', $usrmail)) {
    7. // Fehler...
    8. }
    9. if(!$stmt->execute()) {
    10. // Fehler...
    11. }
    12. $result = $stmt->get_result();
    13. if(!$result) {
    14. // Fehler...
    15. }
    16. while($objekt = $result->fetch_object()) {
    17. // ...
    18. }


    Oder falls du PDO nutzen möchtest:

    PHP-Quellcode

    1. <?php
    2. try {
    3. $db = new PDO('mysql:host=127.0.0.1;dbname=foo;charset=UTF8;', 'user', 'pass', [
    4. PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
    5. ]);
    6. $stmt = $db->prepare('SELECT * FROM teamspeakserver WHERE USERNAME = :username');
    7. $stmt->execute([':username' => $usrmail]);
    8. while($object = $stmt->fetchObject()) {
    9. // ...
    10. }
    11. }
    12. catch(Exception $e) {
    13. // Fehler...
    14. }



    Edit: Und beim Entwickeln immer error_reporting(-1); ini_set('display_errors', 1); verwenden...