Problem mit MySQL-Query

01/26/2013 10:23 Huperis#1
Hallo,
ich finde einfach nicht den Fehler bei meinem Script.
Folgendes steht in der Datei vote.php
PHP Code:
$sql "UPDATE sotw_votes SET votes= votes + 1 LIMIT 1 WHERE bildid LIKE " $_POST['id']; 
Ohne das WHERE bildid LIKE ... funktioniert das alles wunderbar. Liegt auch nicht an dem $_POST, da wenn ich dort eine feste ID angebe, der gleiche Fehler kommt, das die Anfrage nicht erfolgreich war.

Warum funktioniert das nicht?

Danke schon mal :)
01/26/2013 10:49 MrPuschel#2
Update Statements mit Limit sind [Only registered and activated users can see links. Click Here To Register...]und sollten generell vermieden werden.

Like wird mit Maskierungszeichen verwendet. bildid LIKE %$id%. Du solltest Like aber niemals verwenden um id's abzugleichen. Das ist schlechtes Design.
01/26/2013 11:03 Huperis#3
Was würdest du mir denn empfehlen?
01/26/2013 11:11 MrPuschel#4
$sql = "UPDATE sotw_votes SET votes = (votes + 1) WHERE bildid = " . $_POST['id'];
01/26/2013 12:06 martrixmarc#5
Zudem empfehle ich dir alle namen ´´ so zu markieren, da dann auch 100 % ausgeschlossen werden kann, das es sich um einen MYSQL Statement handelt.
01/26/2013 22:35 Mikesch01#6
Quote:
Originally Posted by MrPuschel View Post
Update Statements mit Limit sind [Only registered and activated users can see links. Click Here To Register...]und sollten generell vermieden werden.
Wenn man es auf eine gewisse Anzahl von Updates sieht, dann ja, aber generell nicht.

Zudem war einfach die Syntax im Query falsch, denn LIMIT kommt immer erst zum Schluss.
01/27/2013 18:45 Hupfi10#7
Mach das doch so
PHP Code:
mysql_query("UPDATE sotw_votes SET votes = votes + 1 WHERE bildid = 'LIKE'"