Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

Einspeichern in eine Datenbank nicht mehr möglich

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Jojo123456, 2 Dezember 2016.

  1. Jojo123456

    Jojo123456 Neuer Benutzer

    Hallo zusammen,

    leider funktioniert das Einspeichern eines Eintrags in meine Datenbank nicht mehr und weiß mir nicht zu helfen.

    Aktuell ist es so, dass die Funktion beim lokalen Arbeiten auf dem localhost sehr wohl funktioniert, jedoch wenn ich sie auf den firmeneigenen Server spiele nicht mehr. Alle anderen Funktionen bspw. die Abfrage der Daten funktionieren tadellos.

    Da die Funktionen in dieser PHP-Datei (also überprüfen ob Eingabe schon vorhanden ist, Benutzerüberprüfung) funktionieren bis zum Speichervorgang, bin ich mir sicher dass dort der Fehler liegt. Konkret gibt er nur aus "Der Eintrag wurde nicht gespeichert"

    Vielleicht kann mir ja einer helfen, vielen Dank!!

    Beste Grüße
    Jojo




    Code:
    <html>
    <head>
    <link rel="stylesheet" type="text/css" href="steil.css">
    </head>
    <title>Speichern
    </title>
    
    
    Bundeseinheitliche ID:
    <?php
    echo $_POST["bildung"];
    ?>
    <br>
    <br>
    Freifeld:
    <?php
    echo $_POST["Freiheit"];
    ?>
    <br>
    <br>
    <br>
    
    
    <?php
    
    
        //Variablen definieren
     
        $datenbank_host = '01.234.567.890';
    
        $datenbank_user = 'Name';
    
        $datenbank_passwort = 'Passwort';
    
        $datenbank_name = 'ssp';
    
        $Gesamt = $_POST['bildung']; 
        $Freifeld = $_POST['Freiheit'];
     
        // Datenbankverbindung
     
        $link = @mysql_connect($datenbank_host,
                $datenbank_user, $datenbank_passwort);
        if (!$link) {
                die('keine Verbindung möglich: ' .
                    mysql_error()); }
                 
         $db_selected =
                @mysql_select_db($datenbank_name, $link);
             
        if (!$db_selected) {
                die ('Kann '.$datenbank_name.' nicht
                    benutzen : ' . mysql_error());
            }
         
          
         $sql = "SELECT Bund FROM idspeichern WHERE Bund='$Gesamt' and Frei='$Freifeld'";
    $result = mysql_query($sql);
    $count = mysql_num_rows($result);
        if ($count == 1)
        {
        echo "Die ID ist schon vorhanden";
        }
        else {     
         
        // Speichern in Datenbank und ab hier müsste der Fehler liegen
     
        $sql_insert = "INSERT INTO `idspeichern`
                (`Bund`,`Frei`)
                VALUES('$Gesamt','$Freifeld');";
             
          if (@mysql_query($sql_insert, $link) != false) {
    
                echo 'Der Eintrag wurde gespeichert!';
                $_POST['ges'] = '';
                $_POST['bid'] = '';
            } else {
    
                echo 'Der Eintrag wurde nicht
                    gespeichert!';
            }
    
    
    }
     
    ?>
    
    </html>
    
     
    Zuletzt bearbeitet: 2 Dezember 2016
  2. akretschmer

    akretschmer Datenbank-Guru

    Ohne Fehlermeldung ist es nicht möglich, Dir irgend etwas zu raten außer: besorg Dir die Fehlermeldung.
     
  3. Jojo123456

    Jojo123456 Neuer Benutzer

    Eine Fehlermeldung gibt er ja nicht aus da er ja macht, was er soll (aber nicht, was ich gerne möchte)
    Sollte er die Eingabe nicht speichern, gibt er das 'echo' aus.

    Code:
        $sql_insert = "INSERT INTO `idspeichern`
                (`Bund`,`Frei`)
                VALUES('$Gesamt','$Freifeld');";
               
          if (@mysql_query($sql_insert, $link) != false) {
      
                echo 'Der Eintrag wurde gespeichert!';
                $_POST['ges'] = '';
                $_POST['bid'] = '';
            } else {
    
                echo 'Der Eintrag wurde nicht
                    gespeichert!';
            }
    
    
    }
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Du hast grundlegende Dinge nicht verstanden.


    • ein mysql_query(() - Aufruf kann fehlschlagen. Daher prüft man den Return-Wert. Zeigt dieser einen Fehler an, fragt man diesen ab.
    • IIRC unterdrückst Du mit @ vor der Funktion hier sogar absichtlich die Ausgabe des Fehlers
    • mysql-Funktionen in PHP sind seit Jahren deprecated und in PHP 7 ganz und gar raus
    • Du übernimmst völlig ungeprüft POST-Parameter. SQL-Injection scheint Dir völlig unbekannt zu sein

    Mach bitte Deine Hausaufgaben.
     
    Walter gefällt das.
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden