Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten in MySQL-Datenbank eintragen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten in MySQL-Datenbank eintragen

    Hallo zusammen,

    ich bin noch sehr unerfahren in der Programmierung mit php. Ich versuche, Daten, die in Variablen stehen, in meiner Datenbank abzuspeichern. Leider sind alle Versuche gescheitert, mit den verschiedensten Anweisungen, die ich mir ergooooogelt habe, dieses Vorhaben in die Tat umzusetzen.
    Folgendes Script habe ich zuletzt verwendet:

    $referrer=$_SERVER['HTTP_referrer'];
    $remote=$_SERVER['REMOTE_ADDR'];
    $agent=$_SERVER['HTTP_USER_AGENT'];

    $verbindung = mysql_connect("host",
    "dbo-Nutzer-","Passwort");
    $db = mysql_select_db("db-Datenbank-")
    or die ("Die Datenbank existiert nicht.");
    $eintragen = mysql_query("INSERT INTO Website (Referrer, Remote, Agent, Date) VALUES ($referrer, $remote, $agent, date('d.m.y H:m:s'))");
    if($eintragen == true)
    { echo "Ihr Eintrag wurde hinzugefügt.<br>";}
    else
    {echo "Nicht eingetragen.<br>";}

    Leider kommt immer die Meldung "Nicht eingetragen". Ich habe auch die verschiedensten Zeichen wie Anführungszeichen und Hochkommata bei dem Befehl zum Eintragen eingegeben, jedoch immer den gleichen Mißerfolg erlitten. Kann mir jemand sagen, was hier falsch ist?
    Wenn ich zwischendrin die Variablen über echo ... ausgebe, werden sie korrekt angezeigt. Es wird auch die Meldung angezeigt, daß die Datenbank existiert.

    Im voraus vielen Dank!

  • #2
    Hallo ukr.

    Bitte aktiviere die Fehlerausgabe in deinem Skript, indem du folgendes an den Anfang schreibst:
    PHP-Code:
    ini_set('display_errors'true);
    error_reporting(E_ALL|E_STRICT); 
    Um herauszufinden, warum deine SQL-Anweisung fehlschlägt, füge folgendes hinter dein echo "Nicht eingetragen" ein:
    PHP-Code:
    echo mysql_error(); 
    Siehe dazu auch im Handbuch [MAN]mysql_error[/MAN]

    Dann schreibe uns, welche Fehlermeldung du von deinem Skript erhälst.

    Die mysql_* Funktionen sind veraltet und sollten nicht mehr genutzt werden. Wenn du also erst am lernen bist, dann lerne am besten direkt mysqli oder PDO.
    [IMG]http://media.ubuntuusers.de/portal/files/ubuntu.png[/IMG][IMG]http://sqlmanager.net/i/ico/mysql.gif[/IMG][SIGPIC][/SIGPIC]

    Kommentar


    • #3
      Du solltest Quellcode hier im Forum formatieren damit er besser lesbar ist.

      Ohne deinen Quelltext zu 100% gelesen zu haben

      PHP-Code:
      $eintragen mysql_query("INSERT INTO Website (Referrer, Remote, Agent, Date) VALUES ($referrer$remote$agent, date('d.m.y H:m:s'))");
      if(
      $eintragen == true)
      { echo 
      "Ihr Eintrag wurde hinzugefügt.<br>";}
      else
      {echo 
      "Nicht eingetragen.<br>";} 
      Sieh dir mal die Rückgaben von "mysql_query" und die Beispiele im Manual an...
      http://php.net/manual/de/function.mysql-query.php

      Kommentar


      • #4
        Hallo Frank,

        vielen Dank für die Antwort.
        Habe die Anweisungen eingegeben und es kommt folgende Fehlermeldung:

        Jetzt kommen die Inhalte der Variablen:
        xxx.xxx.xxx.xxx
        Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
        Nicht eingetragen.
        You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.76.5, Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko, dat' at line 1
        ID from Website: Resource id #3
        Jetzt sollte die Anzahl der Reihen erscheinen: 0

        Mein komplettes Script lautet:

        <!DOCTYPE HTML>
        <html>
        <head>
        <title>Test</title>
        </head>
        <body>
        <?php
        ini_set('display_errors', true);
        error_reporting(E_ALL|E_STRICT);
        $remote=$_SERVER['REMOTE_ADDR'];
        $agent=$_SERVER['HTTP_USER_AGENT'];
        echo " Jetzt kommen die Inhalte der Variablen:<br>";
        echo "$remote<br>";
        echo "$agent<br>";
        $verbindung = mysql_connect("host",
        "Benutzer","Paßwort");
        $db = mysql_select_db("dbDatenbank")
        or die ("Die Datenbank existiert nicht.");
        $eintragen = mysql_query("INSERT INTO Website (Remote, Agent, Date) VALUES ($remote, $agent, date('d.m.y H:m:s'))");
        if($eintragen == true)
        { echo "Ihr Eintrag wurde hinzugefügt.<br>";}
        else
        {echo "Nicht eingetragen.<br>";}
        echo mysql_error();
        $abfrage = "SELECT id FROM Website";
        $ergebnis = mysql_query($abfrage);
        echo "<br>ID from Website: ";
        echo $ergebnis;
        $menge = mysql_num_rows($ergebnis);
        echo "<br>Jetzt sollte die Anzahl der Reihen erscheinen: ";
        echo $menge;
        ?>
        </body>
        </html>

        Kommentar

        Lädt...
        X