Ja, mir ist das auch aufgefallen, dass ich mich mit dem Rückgabewert vertan habe.
Ich habe mal direkt nach dem mysql_query() folgende Funktion angewendet:
echo "affected_rows ".mysql_affected_rows();
Ich bekomme 0 ausgegeben. Also wurden demnach 0 Datensätze bearbeitet, sodass man eigentlich davon ausgehen müsste, dass die Where-Klausel nicht passt. Aber ich habe ja schon geschrieben, dass der Inhalt aus $sql, eingefügt per Copy & Paste, funzt und die Aktion ausgeführt wird.
Irgendwie glaube ich jetzt an einen Bug in PHP.