INSERT INTO funktioniert nicht. Keine Eingabe in der Datenbank
ac3
- php
Hallo, ich weiß dieses Thema wurde schon viel zu oft diskutiert und das ist auch meine letzte Lösung hier im Forum um Hilfe zu fragen.
Ich habe eine DB mit ks_weblog mit folgenden Tabellen: press_ID (auto_increment, int(3)); header (varchar(30); date (varchar(11) und content (text)
include("connect.php");
$txt_blogheader = $_POST["txt_blogheader"];
$txt_blogdate = $_POST["txt_blogdate"];
$weblog = $_POST["weblog"];
echo ("$txt_blogheader"); //Datenausgabe ueberpruefen funktioniert
echo ("$txt_blogdate"); //Datenausgabe ueberpruefen funktioniert
echo ("$weblog"); //Datenausgabe ueberpruefen funktioniert
$addblog = "INSERT INTO ks_weblog (header, date, content) VALUES ('$txt_blogheader', '$txt_blogdate', '$weblog')";
mysql_query($addblog);
Leider tut sich in der DB nichts. Wirklich rein garnichts. Und ich weiß nicht wo der Fehler liegt und daher bitte ich um Hilfe!
Kann es an der press_id liegen, dass der auto_increment nicht automatisch hochgesetzt wird?!
Gruß
Grüße,| Hallo, ich weiß dieses Thema wurde schon viel zu oft diskutiert und das ist auch meine letzte Lösung hier im Forum um Hilfe zu fragen.
Ich habe eine DB mit ks_weblog mit folgenden Tabellen: press_ID (auto_increment, int(3)); header (varchar(30); date (varchar(11) und content (text)
[code lang=php]
include("connect.php");$txt_blogheader = $_POST["txt_blogheader"];
$txt_blogdate = $_POST["txt_blogdate"];
$weblog = $_POST["weblog"];
ohne mysql_real_escape_string? wenn du ungünstige zeichen im text hast...
echo ("$txt_blogheader"); //Datenausgabe ueberpruefen funktioniert
"" überflüssig
$addblog = "INSERT INTO ks_weblog (header, date, content) VALUES ('$txt_blogheader', '$txt_blogdate', '$weblog')";
'' werden nicht geparst!
MFG
bleicher
echo $begrüßung;
$addblog = "INSERT INTO ks_weblog (header, date, content) VALUES ('$txt_blogheader', '$txt_blogdate', '$weblog')";
'' werden nicht geparst!
Bitte was? PHP parst grundsätzlich alles. Muss es. Geht nicht anders. Du meinst was anderes. Die ' sind in diesem Kontext Zeichen ohne Sonderbedeutung. Die Variablennamen werden aber erkannt und entsprechend den PHP-Regeln behandelt, da der Kontext ein ""-String ist.
echo "$verabschiedung $name";
Grüße,
|.. da der Kontext ein ""-String ist.
ja, tut mir leid - ich irre mich gelegentlich ;)
MFG
bleicher
echo $begrüßung;
Hallo, ich weiß dieses Thema wurde schon viel zu oft diskutiert und das ist auch meine letzte Lösung hier im Forum um Hilfe zu fragen.
Warum hast du nichts aus den anderen Diskussionen in deinem eigenen Versuch umgesetzt?
include("connect.php");
Die Klammern sind überflüssig, include ist keine Funktion, aber das nur nebenbei.
$txt_blogheader = $_POST["txt_blogheader"];
$txt_blogdate = $_POST["txt_blogdate"];
$weblog = $_POST["weblog"];
Warum legst du neue Variablen mit exakt dem gleichen Inhalt an? Du hast doch die Werte bereits in den $_POST-Elementen stehen, die du bestens verwenden kannst.
echo ("$txt_blogheader"); //Datenausgabe ueberpruefen funktioniert
echo ("$txt_blogdate"); //Datenausgabe ueberpruefen funktioniert
echo ("$weblog"); //Datenausgabe ueberpruefen funktioniert
echo ist keine Funktion, benötigt keine Klammern und die Anführungszeichen um die Variablennamen sind auch überflüssig.
$addblog = "INSERT INTO ks_weblog (header, date, content) VALUES ('$txt_blogheader', '$txt_blogdate', '$weblog')";
Hier fehlt die kontextgerechte Behandlung der Werte (Stichwort mysql_real_escape_string()).
mysql_query($addblog);
Du ignorierst das Rückgabeergebnis der Funktion, weißt damit nicht, ob ein Fehler auftrat und fragst den Wortlaut dazu auch nicht ab (mysql_error()).
Leider tut sich in der DB nichts. Wirklich rein garnichts. Und ich weiß nicht wo der Fehler liegt und daher bitte ich um Hilfe!
Lass dir vom DBMS erzählen, was es nicht mag.
echo "$verabschiedung $name";
Hello,
Lass dir vom DBMS erzählen, was es nicht mag.
...und nachdem das alles befolgt wurde wirfst du (ac3) - Schuss ins Blaue - mal einen Blick ins Handbuch
MfG
Rouven
also erstmal: echo braucht keine klammern echo "ausdruck";
oder echo $ausdruck;
genügen. bei einem Query fängt man immer auch den Fehlerfall auf, einerseits zum Debuggen und auch für den live Betrieb:
$db = mysql_connect($db_server, $db_user, $db_passwort) or die ('Konnte keine Verbindung zur Datenbank herstellen');
if ($result = mysql_query($addblog))
{
echo "es wurden ".mysql_affected_rows()." Datensätze zugefügt";
}
else
{
print "konnte query nicht ausfuehren:".mysql_error();
}
Das Zauberwort heisst mysql_error()
. es gibt den Fehler sehr aufschlussreich aus.
viel Glück
Super Leute ich danke euch!!!
Und das mit dem mysql_error() hat super funktioniert und war wirklich sehr aufschlussreich.
Mit dieser Ausgabe läuft es:
$addblog = "INSERT INTO queiser_mysql.ks_weblog (header, date, content) VALUES ('$txt_blogheader', '$txt_blogdate', '$weblog')";
also erstmal: echo braucht keine klammern
echo "ausdruck";
oderecho $ausdruck;
genügen. bei einem Query fängt man immer auch den Fehlerfall auf, einerseits zum Debuggen und auch für den live Betrieb:
$db = mysql_connect($db_server, $db_user, $db_passwort) or die ('Konnte keine Verbindung zur Datenbank herstellen');
if ($result = mysql_query($addblog))
{
echo "es wurden ".mysql_affected_rows()." Datensätze zugefügt";
}
else
{
print "konnte query nicht ausfuehren:".mysql_error();
}
>
> Das Zauberwort heisst `mysql_error()`{:.language-php}. es gibt den Fehler sehr aufschlussreich aus.
>
> viel Glück