• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

MySQL Wert in Tabelle Eintragen funktioniert nicht

ineedmusic

Neues Mitglied
Hallo.
Ich bin noch totaler neuling was MySQL angeht, mein Wissen beruht auf diesem Tutorial: MySQL Anfänger - MySQL
Beim einfügen von Werten in meine Tabelle habe ich nun ein Problem, dass ich mir nicht erklären kann.
Das Connecten zur Datenbank funktioniert einwandfrei:
Code:
mysql_connect("localhost", "root","")
        or die ("Datenbank Fehler! Verbindung nicht möglich");
 
mysql_select_db("data")
        or die ("Datenbank Fehler! Datenbank existiert nicht");
Nun möchte ich über ein Formular Daten in die Datenbank schreiben. Mein Code dazu:
Code:
$timestamp = time();
$i = 0;  
$id=($i+1);
$date=$timestamp;   
$user=$_SESSION['username'];
$a=$_POST['post'];

mysql_query("INSERT INTO data (id, date, user, a) VALUES ('".$id."', '".$date."', '".$user."', '".$a."')");
(Anstatt $a habe ich 4 andere Variablen, die ebenfalls eingesetzt werden, ich denke aber so ist es übersichtlicher.)
In der Datenbank kommt aber nichts an, obwohl das eintragen in die Tabelle manuell problemlos funktioniert. Ich steh echt aufm Schlauch. Kann mir jemand sagen wo mein Fehler liegt?
MfG iNeedMusic
 
Ohne noch genauerem Ansehen deines Codes würde mich interessieren ob eine Fehlermeldung erschein? Und wenn ja was für eine ?

Grüße
 
Ich kann leider keinen Fehler entdecken. Ich bin zwar nicht der Syntax Profi hier, aber Möglicherweise hast du flasche Dateinbank einstellungen gewählt.

Kleiner Neben Tipp wenn du schon " " verwendest und nicht ' ' dann kannst du die variable direkt ohne den String zu unterbrechen die Variable einfügen.

PHP:
<?php
echo "Hallo $name";
?>
 
Kleiner Neben Tipp wenn du schon " " verwendest und nicht ' ' dann kannst du die variable direkt ohne den String zu unterbrechen die Variable einfügen.
Wo genau meinst du?

Das mit den Einstellungen kann stimmen.
Wie müssen die denn aussehen, damit es funktioniert?
 
PHP:
mysql_query("INSERT INTO data (id, date, user, a) VALUES ('$id', '$date', '$user', '$a')");
Ist kein dramatischer Fehler aber ne verbesserungsmöglichkeit.

Mit deiner Datenbank kann ne Menge falsch sein. Ist die Formatierung bei jedem Feld richtig passt die länge des feldes, sind die namen richtig usw.

Normalerweise sollte aber schon eine Fehlermeldung auftauchen. Möglicherweise wird sie bei dir aber aus irgenteinem Grund unterdrück...
 
Das sieht einfach aus, danke :D

Die Namen habe ich überprüft. Die länge müsste auch ausreichen (250).
Tabelle
Typ: InnoDB
Spalten:
Typ: VARCHAR
Kollation: latin1_swedish_ci (das hat sich irgentwie von selbst eingestellt?)
Ansonsten habe ich nichts eingestellt.
 
Schreib nach dem query:

echo mysql_error();

Damit kannst du dir den mysql-fehler anzeigen lassen, falls einer existiert.
 
Verwendest du irgenteine Methode zum unterdrücken von Fehlermeldungen ?

Probier mal aus (unter dem Insert query)

PHP:
echo mysql_error();

Edit: Ein vorgänger war schneller ^^
 
Ausserdem solltest du Tabellen und Spalten Namen in Backticks (`) schreiben.
Es kann zu Fehlern kommen, wenn du Spalten, nach in Mysql reservierten Schluesselwoertern verwendest.
Die Backticks verhindern dies.


INSERT INTO `test` (`date`, `user`) VALUES (.....)

php.net/mysql_error sagt folgendes:

Fehler, die vom MySQL Server kommen, führen nicht mehr zu einer Ausgabe von Warnungen. Stattdessen sollten Sie die Funktion mysql_error() verwenden, um den Fehlertext zu erhalten.

Ausserdem Interessant fuer dich:

PHP: mysql_real_escape_string - Manual


Und wenn du dich ein wenig auskennst, steig irgendwann auf MySqli:

PHP: Mysqli - Manual
 
Du waehlst die Datenbank data aus.
Jetzt willst du aber in die Datenbank data in Eine Tabelle (bei dir heist die im Query auch data) etwas einfuegen.
Anscheinend hast du deine Tabelle innerhalb der Datenbank data aber nicht data genannt, sondern irgendwie anders.
 
Zurück
Oben