$sql = "UPDATE ... SET ... WHERE... was mach ich falsch

Original geschrieben von bensky
richtig. darum ging es aber garnicht!

wörter kannst du in sql nicht mit = vergleichen sondern

mit SAME oder LIKE !

um textfelder ging es garnicht


--> wer lesen kann ist klar im vorteil
Da er aber einen eine Tabellenspalte, nämlich `usr`, gegen den Wert in der Variable $who checkt, braucht er nicht unbedingt SAME oder LIKE. Da reicht ihm
Code:
WHERE `url` = 'wort'
völlig aus.

Genereller Tipp: Alle Tabellen- und Spaltennamen in Backticks (`) und keine Variablen in den String einbauen. Darüber hinaus, musst du wenn du Spalten Werte zuweist und es handelt sich dabei nicht um Zahlen, die Werte ebenfalls in Singlequotes einfassen. Nächste elementare Frage. Wird $who per Formular übergeben, und müsste vielleicht eher per $_POST['who'] oder $_GET['who'] angesprochen werden? Siehe dazu die überall besprochene register_globals=off Problematik seit PHP 4.2.0.

Exemplarisch würde ich also folgendes testen. Ich bin da jetzt mal davon ausgegangen, das nur Wörter eingetragen werden. Wenn in eine Spalte einen numerischen Typ hat, sollten die Singlequotes um den Wert nicht da hin.
PHP:
$sql = "UPDATE `table02`
	SET
	`B1_1`='".$b11."',
	`B1_2`='".$b12."',
	`B2_1`='".$b21."',
	`B2_2`='".$b22."',
	`B3_1`='".$b31."',
	 B3_2='".$b32."',
	 B4_1='".$b41."',
	 B4_2='".$b42."',
	 B5_1='".$b51."',
	 B5_2='".$b52."',
	 B6_1='".$b61."',
	 B6_2='".$b62."'
	 WHERE `usr`='".$who."')";
 
Zurück