Fehler im MySQL-Query
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abgeben
auto
bewertung
code
datum
falsch code
glauben
grad
herausnehmen
leitung
not
probier
semikolon
server
setzen
spalte
stimme
string
syntax
vorkommen
-
hi,
bestimmt ist die loesung total einfach und ich steh auf der leitung und seh es nur nicht, aber was ist daran falsch?
$sql = 'INSERT INTO voting(`IP`, `vote`, `Datum`) VALUES ('.$_SERVER["REMOTE_ADDR"].', '.$vote.', '.$time.');';
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das Semikolon nach der letzten Klammer ist falsch! Das muss weg.
Beitrag zuletzt geändert: 13.11.2009 16:43:11 von karpfen -
Oh, das hab ich uebersehen, ich dachte aber das waere egal. trotzdem, es erscheint noch immer die selbe fehlermeldung
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '.0.1, 6, 1258126991)'
das '0.1 is wohl eigentlich der Teil von der IP 127.0.0.1
Beitrag zuletzt geändert: 13.11.2009 16:56:29 von sy -
Ich glaube das Semikolon kann ruhig beiben..
Probier doch mal
$sql = 'INSERT INTO voting (`IP`, `vote`, `Datum`) VALUES ("'.$_SERVER["REMOTE_ADDR"].'","'.$vote.'","'.$time.'");';
-
okay, ich glaub da stimmt was mit der tabellenstruktur nicht. der wert 6 ist die bewertung:
Duplicate entry '6' for key 'PRIMARY'
Beitrag zuletzt geändert: 13.11.2009 17:00:02 von sy -
Das ist natürlich schlecht :-)
Wenn Du einen auto_increment Wert als ID hast, braucht der natürlich nicht in deinen Insert-Query rein. -
nein, das ist die bewertung an sich und keine id, habs oben grad editiert
`Vote` tinyint(5) NOT NULL, PRIMARY KEY (`Vote`) )
Beitrag zuletzt geändert: 13.11.2009 17:18:08 von sy -
Was, Du hast die Spalte 'vote' als Primary-Key??
dann solltest Du das herausnehmen und und eine Spalte INT mit auto-increment als Primary Key nehmen. -
EDIT: Okay, hat sich erledigt, hab das grad falsch verstanden. Danke-
ich dachte, du meintest, ich solle die tabelle vote also auto_increment machen, weil ich dachte, dass du dachtest, vote waere die id
Beitrag zuletzt geändert: 13.11.2009 17:14:22 von sy -
Du hast jetzt das Problem, dass jeder Wert in der Spalte 'Vote' nur einmal vorkommen darf.
D.h. du willst irgendetwas mit 2 bewerten, vor Dir hat jedoch schonmal jemand etwas mit 2 bewertet, also kannst Du Deine Stimme nicht abgeben.
Ich weiss nicht genau, was Du dort bastelst, aber ich denke mal, dass dies nicht gewollt sein kann.
Lösche einfach den Key und füge optional noch eine Spalte mit auto_increment als Primery Key ein.
Du kannst ja auf 'Vote' trotzdem einen Key setzen.
Nur halt keinen Primary. -
$sql = "INSERT INTO voting(IP,vote,Datum) VALUES ('".$_SERVER["REMOTE_ADDR"]."', '$vote', '$time')";
Scheint mir sinnvoller. Die Anführungszeichen fehlen, wenn du '.$_SERVER["REMOTE_ADDR"].' schreibst, weil der Parser aufgrund des Verbindungsoperators davon ausgeht, dass der String endet und mit einem anderen String verbunden werden soll.
Gruß
styVe (qap2-Team)
Beitrag zuletzt geändert: 13.11.2009 20:00:42 von qap2 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage