MySQl-Problem



  • Ich setze den Text, der in der Datenbank gespeichert wird aus einen Text in einfachen Anführungszeichen, einer Benutzereingabe, die über ein Formular übergeben wurde und einem weitern Text in Anführungszeichen zusammen dies steht in der Variablen $datname. Dann schreib ich in die geöffnete Datenbank:

    $eingabe = "INSERT INTO data (ID, Datei) VALUES(1, ".$datname.")";
    $hebbert = mysql_query($eingabe);
    

    Aber die Datenbank bleibt leer, also muss irgendwo hierbei ein Fehler aufgetreten sein und der einzige den ich mir vorstellen konnte war eben dieser



  • Mache in $datname selber keine '' rein sondern nur den namen selber und dann:

    $eingabe = "INSERT INTO data (ID, Datei) VALUES('1', '$datname')";
    


  • benutze noch mysql_escape_string, um nicht ein böses erwachen zu haben!



  • Loggy schrieb:

    benutze noch mysql_escape_string, um nicht ein böses erwachen zu haben!

    sry, kenn ich nicht, wie beutzt man dass?

    thx
    Glamdring



  • Dann schau eben mal in die Doku :p - http://de.php.net/mysql_escape_string



  • Für sowas gibts die Dokumentation unter www.php.net.

    Hier der direkte Link zu der Funktion:
    http://de3.php.net/manual/de/function.mysql-escape-string.php



  • Aso, dange

    mfg
    Glamdring



  • Ich poste mal den ganzen Code:

    <html>
    <head>
    <title> Datenbank </title>
    </head>
    <body>
    <?php
         $db = mysql_connect("localhost", "Administrator", "1");
         if($db)
         {
                echo "Die Datenbank ist geöffnet";
    
                $_POST["msg"]    = str_replace("</HTML>", "", $_POST["msg"]);
                $_POST["Date"]   = str_replace("</HTML>", "", $_POST["Date"]);
                $_POST["Author"] = str_replace("</HTML>", "", $_POST["Author"]);
                $_POST["Titel"]  = str_replace("</HTML>", "", $_POST["Titel"]);
    
                echo "<BR>Die Eingaben wurden bearbeitet";
    
                $Heribert  = $_POST["Date"]."<BR><BR>".$_POST["Title"];
                $Heribert .= "<BR>".$_POST["Author"]."<BR><BR>".$_POST["msg"];
                $datname   = "C:/Webserver/Apache/htdocs/CMS/data/".$_POST["Titel"].".inc";
    
                echo "<BR>Die Variablen wurden definiert<BR>";
    
                $datei = fopen($datname, "w+");
                rewind($datei);
                fwrite($datei, $_POST["Date"]);
                fwrite($datei, "<BR><BR>");
                fclose($datei);
    
                echo "Die Datei wurde erstellt";
    
                mysql_select_db("CMS");
                $eingabe = "INSERT INTO data (ID, Datei) VALUES('1', ".$datname.")";
                $eingabe = mysql_escape_string($eingabe);
                $hebbert = mysql_query($eingabe);
    
                echo "<BR>Ihre Eingaben wurden gespeichert";
                echo $hebbert;
    
                mysql_close($db);
         }
         else
         {
                echo "Es ist ein Fehler beim Zugriff auf die Datenbank aufgetreten, kontaktieren sie  bitte den Administrator";
         }
    
    ?>
    </body>
    </html>
    

    So sieht das ganze aus, wenn ich jetzt bei der definition von $datname die anführungszeichen wegnehme, könnten die Strings nicht mehr aneinander "geheftet" werden, also gehts so wohl nicht. Die obige Version geht leider auch nicht

    thx
    Glamdring



  • $eingabe = 'INSERT INTO data (ID, Datei) VALUES("1","'.mysql_escape_string($datname).'")';
    


  • Haha, danke so gehts 😃 🙂


Anmelden zum Antworten