Formulardaten in MySQL

julia29

Erfahrenes Mitglied
Hallo,

möchte einen Wert aus einem Formular in eine MySQL speichern, komme aber mit dem Befehl "mysql_query" nicht richtig klar. Der Befehl wird auch wie normaler Text dargestellt nicht wie ein php-Befehl. Kann das Problem nicht finden.

PHP:
<html>
<head>
<title>HTML-Texte speichern</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="de" />
</head>

<body bgcolor="#FFFFFF">
<?PHP
$user = "x1";                //MySQL-Username
$passw = "x2";               //Passwort für MySQL-Datenbank
$host = "localhost";                //MySQL-DB-Host
$database = "x3";            //Name der MySQL-Datenbank
$mysql_table = "texte";   //MySQL-Tabelle der Datenbank

  $a01 = $_POST["f01"];
  
  $eintrag = "INSERT INTO links (a01,) VALUES ('$a01')";
  
  $eintragen = mysql_query($eintrag);
  ?>

</body>
</html>

Anschließend kommt folgende Fehlermeldung:
Warning: mysql_query(): A link to the server could not be established in /var/kunden/webs/4cms/import_text.php on line 22
 
Hallo merzi86

Was für eine Verbindung baut denn import_text.php auf Zeile 22 auf

Kannste die Zeile mal bitte Posten?

Das ist ein Textbereich aus einem Formular:
<form method="post" action="http://www.domain.de/4cms/import_text.php">
<h3><textarea id="elm1" name="f01" rows="15" cols="80" style="width: 100%">

</textarea><br />

</h3>
</form>
Ach ja - die Tabelle heisst "texte" und das Feld wo die Daten rein sollen heisst "a01"

Gruss
Julia
 
Zuletzt bearbeitet:
Mit scheint im Query ein Fehler zu sein.....

PHP:
$a01 = $_POST["f01"];
  
  $eintrag = "INSERT INTO links SET a01 = '".mysql_real_escape_string($a01)."'";

mysql_real_escape_string($a01) ist für die sicherheit.....

a01 müssste ja der tabellenname sein ;)


Problem war glaub ich:
Code:
links (a01,) <+++ Das komma. Da erwartet mysql glaube ich eine weitere Tabelle
 
Hallo suf*****,

juhu .... Teilerfolg - keine Fehlermeldung mehr (hatte was vertauscht)

PHP:
  $eintrag = "INSERT INTO a01 SET texte = '"."mysql_real_escape_string($a01).";

damit funktioniert es, aber ....... es kommt in der MySQL nix an.
Die Zugangsdaten sind alle richtig, das kann es nicht sein.

Was kann ich nun machen?
 
Du hast da zwar die Zugangsdaten stehen, stellst damit aber keine Verbindung zur Datenbank her ;)

doch, aber vielleicht sollte ich meinen Code noch mal gesamt aufführen.

PHP:
<html>
<head>
<title>HTML-Texte speichern</title>
<meta http-equiv="content-type" content="text/html;charset=iso-8859-1" />
<meta http-equiv="Content-Language" content="de" />
</head>

<body bgcolor="#FFFFFF">

<?PHP
$user = "x1";                //MySQL-Username
$passw = "x2";               //Passwort für MySQL-Datenbank
$host = "localhost";                //MySQL-DB-Host
$database = "x3";            //Name der MySQL-Datenbank
$mysql_table = "texte";   //MySQL-Tabelle der Datenbank

  $a01 = $_POST["f01"];
  
//  $eintrag = "INSERT INTO a01 VALUES ('$a01')";
  $eintrag = "INSERT INTO a01 SET texte = '"."mysql_real_escape_string($a01).";
  $eintragen = "mysql_query('$eintrag')";
// Connect to MySQL-DB
  $db = @mysql_connect($host, $user, $passw)
  or die ("Verbindungsaufnahme mit der MySQL-Server war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zum MySQL-Server zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
  @mysql_select_db($database, $db)
  or die ("Verbindungsaufnahme mit Datenbank war <b>nicht</b> erfolgreich!<br />Bitte gehen Sie nochmals zurück.<br />Sollte weiterhin keine Verbindung zur MySQL-Datenbank zu Stande kommen wenden Sie sich an den technischen Ansprechparnter");
//Connect!!ED!! to MySQL-DB

//MySQL-Query zusammenbauen
$result = mysql_query($eintragen, $db) OR mysql_error();
/* ENDE: AUSGEWÄHLTE DATEN IN MYSQL-DB SCHREIBEN */
  ?>

</body>
</html>

aber es kommt nix an.
 
Versuch mal
Code:
$result = mysql_query($eintrag, $db)
Code:
mysql_query("mysql_query('$eintrag')", $db)
macht nämlich nicht viel Sinn ;)
 
Ich meinte deine letzte Zeile. Also bei
PHP:
//MySQL-Query zusammenbauen
$result = mysql_query($eintragen, $db) OR mysql_error();
/* ENDE: AUSGEWÄHLTE DATEN IN MYSQL-DB SCHREIBEN */
das $eintragen durch $eintrag ersetzen.
Bei Code 2 hab ich statt $eintragen das geschrieben, was in der Variable drin steht.
 
Zurück