Tobias Kloth: Variable in SQL Befehl

Beitrag lesen

Hallo bjacke,

$conn = @mysql_connect($server, $user, $pass);
@mysql_select_db($datenbank, $conn);

warum unterdrückst du mögliche Fehlermeldungen ohne danach zu prüfuen, ob ein Fehler aufgetreten ist?

$value=mysql_query("UPDATE homepage\_delphi\_dl SET dl\_program\_count = dl\_program\_count+ '1' WHERE dl\_program = "$row['dl_program']" ");

Die Backticks sind in dem Fall nicht notwendig, außerdem ist es von Vorteil den Query erst in eine Variable zu schreiben und die Variable dann der Funktion mysql_query zu übergeben (du kannst dir dann den Query zur Kontrolle ausgeben lassen).

Bei "$row['dl_program']" scheint der Fehler zu liegen, normalerweise schreibt man da ja z.B. 'Test' hin. Geht das jetzt auch mit einer Variable?

schau dir mal auf http://de3.php.net/language.types.array#language.types.array.foo-bar (etwas runterscrollen, der Kasten "Weitere Beispiele zur Veranschaulichung dieses Sachverhalts:") an, wie man Arrayelemente in Strings einbindet. Ich würde dir aber empfehlen eine Verkettung zu verwenden:
  $query = "UPDATE ... WHERE dl_program = ".$row['dl_program'];

je nach dem was $row['dl_program'] enthält, könnte es noch nötig sein, dass du Anführungszeichen um den Wert setzt:
  $query = "UPDATE ... WHERE dl_program = '".$row['dl_program']."'";

Grüße aus Nürnberg
Tobias