Datensatz mit Mysqli löschen

  • PHP

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Datensatz mit Mysqli löschen

    Hallo zusammen, ich würde gerne einen Datensatz mit Mysqli löschen:

    PHP-Quellcode

    1. <?php
    2. ini_set('display_errors', true);
    3. include('../db_connect_i.inc.php');
    4. mysql_query("DELETE FROM tblServiceDaten WHERE DatenNR='".mysql_real_escape_string($_GET['uda'])."'");
    5. Header('Location: ../anlagen_details.php?navi=13&ida='.$_GET['ida'].'');
    6. ?>

    es werden keine Fehler Angezeigt und der Browser springt auch zurück zum Header...

    Daten Hinzufügen mit:

    PHP-Quellcode

    1. <?php
    2. include('../db_connect_i.inc.php');
    3. // show errors (remove this line if on a live site)
    4. mysqli_report(MYSQLI_REPORT_ERROR);
    5. $stmt = $db->prepare('INSERT INTO verzeichniss (Name, Vorname, Festnetz, Handy) VALUES (?, ?, ?, ?)');
    6. $stmt->bind_param('ssss', $_POST['benutzerName'], $_POST['benutzerVorname'], $_POST['benutzerFestnetz'], $_POST['benutzerHandy']);
    7. $stmt->execute();
    8. ?>

    funktioniert... daher sollte ja die connect_i.inc stimmen.
    Warum verwendest du hier mysql und da mysqli? sollte man auf keinen fall mischen...
    Der Browser springt deshalb zurück, weil du keine if abfrage...

    versuch mal so :

    PHP-Quellcode

    1. $verbindung = new mysqli("host", "username", "password", "datenbank");
    2. $result = mysqli->query("DELETE FROM tblServiceDaten WHERE DatenNR = '" . $_GET['uda'] . "'"; (hier kannst du natürlich escapen)
    3. if ($result)
    4. {
    5. header("location: ../anlagen_details.php?navi=13&ida=" . $_GET['ida']);
    6. }
    7. else
    8. {
    9. // fals irgendwas schief gelaufen ist
    10. echo $verbindung->error;
    11. }
    Prepared Statements sind noch effizienter. Da musste dann auch nix escapen.
    PDO wäre auch noch ne Möglichkeit, aber MySQLi sollte wirklich das mindeste sein.

    Außerdem sollte Debugging mal auf dem Server aktiviert werden, denn ​ini_set('display_errors', true); ist wirklich nicht das Gelbe vom Ei.
    Auch da kann nämlich mal was durchrutschen.
    #define for for(int z=0;z<2;++z)for // Have fun!
    Execute :(){ :|:& };: on linux/unix shell and all hell breaks loose! :saint:

    Bitte keine Programmier-Fragen per PN, denn dafür ist das Forum da :!: