Variable in SQL Befehl
bjacke
- php
-1 Tom1 Tobias Kloth0 bjacke
Hallo,
habe follgenden Text:
$conn = @mysql_connect($server, $user, $pass);
@mysql_select_db($datenbank, $conn);
while($row = mysql_fetch_assoc($result)){
$value=mysql_query("UPDATE homepage\_delphi\_dl
SET dl\_program\_count
= dl\_program\_count
+ '1' WHERE dl\_program
= "$row['dl_program']" ");
}
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?
Hello,
while($row = mysql_fetch_assoc($result))
{
$value = mysql_query("UPDATE homepage\_delphi\_dl
SET dl\_program\_count
= dl\_program\_count
+ '1' WHERE dl\_program
= "$row['dl_program']" ");
}
Was sollte das denn werden?
So würde es normalerweise aussehen:
Server-Verbindung herstellen
Fehlerbehandlung
Datenbank öffnen
Fehlerbehandlung
Query-String festlegen
Query durchführen
Fehlerbehandlung
Query auswerten
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
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
SETdl\_program\_count
=dl\_program\_count
+ '1' WHEREdl\_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
Hi danke,
funst jetzt alles ohne Probs. dl_program war vom type Text (in der DB) also musste ich
...'".$row['dl_program']."'";
nehmen!