Frage von Technicboy12, 75

Mysql post?

Sehr geehrte Community,

Wieder bin ich einmal etwas am entwickeln und musste feststellen das mein Script die Werte nicht abspeichert. Woran könnte dies liegen?

http://pastebin.com/XJ4QGWKu

Würde mich auf Antworten freuen.

LG

Antwort
von Homero, 14

Prüf doch erstmal grundsätzliches.

gebe mal am Anfang Deinses Srciptes

var_dump($_POST);

an und unter der RESULT-Zeile

var_dump($shout);

echo mysql_error();

und dann schau erst mal, was in den Vars steht und was drinn steht, und was Du erwartest übereinstimmt und ob MySql Dir eine Info über deine Query gibt.

Anonsten versuch mal den Query_String sauber zu halten:

INSERT INTO wcf2_shoutbox_entry(ipAddress, userID, time, username, message) VALUES ('".$ipAddress."', '".$userID."',".$time.", '".$username."', '".$shoutbox."')"

Wenn ich das richtig sehe ist $time kein string, sondern integer, Anführungszeichen solltest Du nur für strings ind er query verwenden, nicht für reine Zahlen.

Eventuell gilt das ja auch  für die User ID?

Antwort
von maximilianus7, 32

gibt es denn eine fehlermeldung? wenn nicht, kannst du erkennen, dass das script ansonsten fehlerfrei ausgeführt wird? setze mal an den anfang

error_reporting( E_ERROR | E_WARNING | E_PARSE);
 

Kommentar von Technicboy12 ,

Hallo,

Ein Error erscheint nicht, müsste auch ausgeführt werden.

Kommentar von maximilianus7 ,

dann werte mal $Result1 (boolean) aus: if ($Result1) echo ... else echo ...


http://stackoverflow.com/questions/509211/explain-pythons-slice-notation

Antwort
von Alextoexplain, 16

Hello there,

leider fehlen hier wichtige Informationen zum Rest des Skriptes, etwa auch zur Verbindung der Datenbank.

Aber weißt du was sein kann?

Nach dem "INSERT INTO wcf2_shoutbox_entry" kommt gleich die Klammer und kein Leerzeichen mehr. Das könnte evtl. ein Problem sein. Möglicherweise interpretiert der MySQL parser dann den ganzen Klammerblock noch als Tabellennamen. Änder das mal ab.

MfG

Alex

Kommentar von Technicboy12 ,

Vielen Dank, leider funktioniert es immer noch nicht. -_-

Die DB Verbindung ist korrekt, daran scheitert es nicht.

Antwort
von uni61182, 26

und wie beendet man dann jedes sql statement? ;-)

Kommentar von Technicboy12 ,

Das ist mir bewusst, trotzdem sehe ich es nicht wo ich es vergessen habe. :S

Kommentar von maximilianus7 ,

"man" beendet keine sql-statements durch ";". allenfalls werden mehrere statements durch ";" getrennt. was aber bei mysql eh nicht geht. 

Antwort
von webflexer, 36

du verwendest mysql anstatt mysqli

So wäre das unter mysqli korrekt!

Erst die Connection, dann die Query


$Result1 = mysqli_query($con, $shout) or die(mysql_error());
Kommentar von Technicboy12 ,

Es funktioniert trotzdem nicht. Bei einem anderen Script (Cronjob) funktioniert es mit dem Query und dann die Connection.

-_-

Kommentar von webflexer ,

Du musst natürlich alles auf mysqli anpassen! (Datenbankverbindung Error Abfrage usw.)

Grundsätzlich immer mysqli bzw. PDO verwenden da mysql deprecated ist!

Kommentar von maximilianus7 ,

das ist jetzt richtig falsch! du kannst nicht einfach mysql und mysqli vermischen. und in mysql sind die parameter andersrum.

Keine passende Antwort gefunden?

Fragen Sie die Community

Weitere Fragen mit Antworten