mySQL udpate

sugar

Erfahrenes Mitglied
Hallo,

ist es möglich so ein mySQL update zu machen?

PHP:
$update= mysql_query("UPDATE `property` SET $wert = '$bild_neu' WHERE id='$newid'") or die(mysql_error());

Also für die Tabellezeile eine Variable ($wert) zu verwenden?

Grüße
sugar
 
Sorry habe bereits selbst die Lösung gefunden, ich poste sie hier mal:

PHP:
  $query = sprintf(
  "UPDATE property SET %s = '%s' WHERE ID = '%s'",
  $wert,
  $bild_neu,
  $newid
  );
  echo "Hat geklappt!";

mysql_query($query, $db) or die(mysql_error());

Schönen Abend noch..
sugar
 
Leider geht es doch nicht! :eek:

PHP:
if ($do=="save") {

  copy($_FILES["datei"]["tmp_name"], "../wohnungen_mieten/objekte/".$_FILES['datei']['name']);
  
  $bild_neu= $_FILES['datei']['name'];
  $wert = $_POST['bildwert']; 
  
  $query = sprintf("UPDATE property SET %s = '%s' WHERE id = '%s'",
  $wert,
  $bild_neu,
  $newid);
  
echo "$query";
printf ("<br>Veränderte Datensätze: %d\n", mysql_affected_rows());
$erg=mysql_query($query) or die(mysql_error());
  
}

Komischerweise ist das Query total richtig, das ist meine Ausgabe:
UPDATE property SET bild5 = 'neu423_3032.jpg' WHERE id = '4'
Veränderte Datensätze: -1

Nur was eben auch mysql_affected_rows ausgibt, wird der Befehl nicht richtig ausgeführt! :confused:

Kann mir jemand helfen?
 
Hallo Sugar,

benutze die Funktion mysql_affected_rows() einfach mal mal nach mysql_query($query).

Dann sollte zumindest das Ergebnis schonmal richtig sein :rolleyes:

Kannst du mit Sicherheit sagen, dass die UPDATE-Anweisung nicht in der DB ausgeführt wird?

Ansonsten versuch mal:

UPDATE `property` SET `bild5` = 'neu423_3032.jpg' WHERE `id` = '4'
 
Danke für deine Antwort! Tatsächlich war nur das Ergebnis von mysql_affected_rows falsch (-1) jedoch wurde es in der Datenbank gespeichert! :confused:

Auf jeden Fall geht es jetzt! :)
 
Hast du auch verstanden, warum das Ergebnis falsch war? :)

Nur noch ne kleine Erklärungg für das nächste mal:
Bestimmte mysql-Funktionen liefern erst nach einer Datenbankabfrage (mysql_query()) ein Ergebnis zurück.

zB:
mysql_affected_rows() - Liefert die Anzahl betroffener Datensätze einer vorhergehenden MySQL Operation

so steht es in der DOKU auf php.net
 
Hm das kann es natürlich gewesen sein! Danke für die Erklärung! Man sollte sich auch nicht immer nur auf ein Ergebnis verlassen.. :rolleyes:
 
Zurück