Fehler beim Speichern in MySQL Datenbank

Diskutiere und helfe bei Fehler beim Speichern in MySQL Datenbank im Bereich Webmaster Support, Scripts, etc im SysProfile Forum bei einer Lösung; Hallo, ich habe ein kleines Script geschrieben mit denen ich Texte, usw. in eine Datenbank speichern kann, allerdings bekomm ich beim Abschicken... Dieses Thema im Forum "Webmaster Support, Scripts, etc" wurde erstellt von PrototypePHX, 20. Juli 2009.

  1. PrototypePHX
    PrototypePHX Hardware-Wissenschaftler
    Registriert seit:
    29. Dezember 2006
    Beiträge:
    411
    Zustimmungen:
    7
    Name:
    Marius H.
    1. SysProfile:
    21543
    2. SysProfile:
    121184

    Hallo,

    ich habe ein kleines Script geschrieben mit denen ich Texte, usw. in eine Datenbank speichern kann, allerdings bekomm ich beim Abschicken drei Fehler:

    Code:
    Warning: mysql(): supplied argument is not a valid MySQL-Link resource in  ***** on line 23
    
    Warning: mysql_select_db(): supplied argument is not a valid MySQL-Link resource in ***** on line 24
    
    Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in ****** on line 25
    Hier der Code:

    Code:
    <html>
    
    <head>
    <meta http-equiv="Content-Language" content="de">
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>Neue Seite 1</title>
    </head>
    
    <body>
    
    <?php
    if($_POST['flag']==1)
    {
    $sqlhost = "localhost";
    $sqluser = "*****";
    $sqlpassword = "******";
    $sqldb = "*******";
    
    $tablename="entries";
    $sql="INSERT INTO $tablename (title, content, date) values ('".$_POST['title']."', '".$_POST['content']."', now())";
    $link = mysql($sqlhost, $sqluser, $sqlpassword);
    mysql_select_db($sqldb, $link);
    mysql_query($sql, $link);
    $message="Gespeichert";
    
    echo $message;
    }
    
    if(!$_POST['flag'])
    {
    ?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="hidden" name="flag" value="1">
    <p>Titel:<br>
    <input type="text" name="absender" value="<?php echo $_POST['title']; ?>"></p>
    <p>text:<br>
    <textarea name="content">
    <?php echo $_POST['content']; ?>
    </textarea>
    </p>
    <input type="submit" value="send">
    </form>
    
    <?php
    }
    ?>
    </body>
    
    </html>
    
    Die Logindaten und der Datenbankname stimmen zu 100%.

    Danke im Voraus ;)
     
    #1 PrototypePHX, 20. Juli 2009
  2. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421

    Würde sagen der fehler liegt in der Zeile
    Code:
    $sql="INSERT INTO $tablename (title, content, date) values ('".$_POST['title']."', '".$_POST['content']."', now())";
    Probier die Variablen vorher auszulesen also :

    Code:
    $title = $_POST['title'];
    $content = $_POST['content'];
    // den Tabellen namen würde ich nicht in eine Variable speichern
    $sql="INSERT INTO entries (title, content, date) values ('$title', '$content')";
     
  3. PrototypePHX
    PrototypePHX Hardware-Wissenschaftler
    Themenstarter
    Registriert seit:
    29. Dezember 2006
    Beiträge:
    411
    Zustimmungen:
    7
    Name:
    Marius H.
    1. SysProfile:
    21543
    2. SysProfile:
    121184
    Habs mal probiert, gleicher Fehler. Hätte mich auch gewundert wenn es geklappt hätte, weil die "Funktion" ja gleich bleibt.
    Trotzdem danke!
     
    #3 PrototypePHX, 20. Juli 2009
  4. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421
    Code:
    $title = "Test Title";
    $content = "Test Content";
    // den Tabellen namen würde ich nicht in eine Variable speichern
    $sql="INSERT INTO entries (title, content, date) values ('$title', '$content')";
    Versuch das erstmal mit deinem Restlichen Code

    P.S. das kriegen wir schon Hin :D
     
  5. PrototypePHX
    PrototypePHX Hardware-Wissenschaftler
    Themenstarter
    Registriert seit:
    29. Dezember 2006
    Beiträge:
    411
    Zustimmungen:
    7
    Name:
    Marius H.
    1. SysProfile:
    21543
    2. SysProfile:
    121184
    Hab ich alles schon ;)
    Warum würdest du den Tabellennamen nicht in einer Variablen speichern? Das macht do im Prinzip gar keinen Unterschied?
     
    #5 PrototypePHX, 20. Juli 2009
  6. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421
    Bei mir hatte das Damals nicht funktioniert genau wie das was ich dir jetzt vorschlage:

    Das :
    mysql_query($link);
    mysql_query($sql);

    Statt :
    mysql_query($sql, $link);

    P.S. Bei MYsql Slecet das selbe
     
  7. PrototypePHX
    PrototypePHX Hardware-Wissenschaftler
    Themenstarter
    Registriert seit:
    29. Dezember 2006
    Beiträge:
    411
    Zustimmungen:
    7
    Name:
    Marius H.
    1. SysProfile:
    21543
    2. SysProfile:
    121184
    Fehler gefunden.

    Code:
    $link = mysql($sqlhost, $sqluser, $sqlpassword);
    
    Sollte wohl eher "mysql_connect" heißen :rolleyes:.

    Jedenfalls sind die Fehlermeldungen weg und ich hab ein neues Problem, in meiner Datenbank wird nichts gespeichert.
     
    #7 PrototypePHX, 20. Juli 2009
  8. Racer X
    Racer X Alter Hase
    Registriert seit:
    11. April 2008
    Beiträge:
    2.222
    Zustimmungen:
    78
    1. SysProfile:
    72607
    2. SysProfile:
    14421
    Also erst mal nochmal nen Tip:
    Da du evtl auch die datenbank auslesen willst

    Diese datei (Mysql.php) includierst du einfach in jede datei die eine Verbindung braucht zur datenbank so auch in der Folgenden datei


    Ich arbeite immer mit der "Update" Funktion. Vorrausetzung ist natürlich das du leere Felder in deiner Datenbank hast aber so sollte es eigentlich klappen
    Code:
    inlcude ("mysql.php");
    
    $title = $_POST [title];
    $content = $_POST [content];
    $eintrag = "INSERT INTO entries (content, title) VALUES ('$content', '$title')";
    $eintragen = mysql_query($eintrag);
     
    #8 Racer X, 20. Juli 2009
    Zuletzt bearbeitet: 20. Juli 2009
  9. PrototypePHX
    PrototypePHX Hardware-Wissenschaftler
    Themenstarter
    Registriert seit:
    29. Dezember 2006
    Beiträge:
    411
    Zustimmungen:
    7
    Name:
    Marius H.
    1. SysProfile:
    21543
    2. SysProfile:
    121184
    Hat sich erledigt, danke, hatte einen Tippfehler im Formularteil.
     
    #9 PrototypePHX, 21. Juli 2009
  10. @@RON
    @@RON Computer-Xpert
    Registriert seit:
    2. Mai 2007
    Beiträge:
    1.294
    Zustimmungen:
    48
    Name:
    Aaron
    1. SysProfile:
    9979
    2. SysProfile:
    9977

    Oder um es noch ein klein wenig besser zu machen:

    Code:
    inlcude ("mysql.php");
    
    $title = $_POST [title];
    $content = $_POST [content];
    $eintrag = "INSERT INTO entries (content, title) VALUES ('".$content."', '".$title."')";
    $eintragen = mysql_query($eintrag);
    
    Es soll jedenfalls besser sein, wenn die Variablen nicht direkt in den String geschrieben werden :)
     
Thema:

Fehler beim Speichern in MySQL Datenbank

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