Wie wäre es denn damit die $query _vorher_ zu loggen?
Vorher? Bevor der String überhaupt zugewiesen wurde? Was soll denn das?
Nein! Bevor der String an die Datenbank geschickt wird.
Ich habe das mal für Dich gemacht:
<?php $Firmenname="foo' GmbH";
$Land="DE";
$Status=1;
$Link="viel text";
$entry=100;
$_GET['section']=2;
$DB=mysql_connect('####', '###', '###'); # Deine Werte...
if (!$Firmenname)
      {
        echo "Sie haben keine Daten eingegeben!<br>";
      }
      else
      {
        dbcall();
        switch ($_GET['section'])
        {
          case 1:
            $query = "INSERT INTO hersteller (Firmenname, Land, Status, Link) VALUES ('".mysql_real_escape_string($Firmenname)."','".mysql_real_escape_string($Land)."','".mysql_real_escape_string($Status)."','".mysql_real_escape_string($Link)."')";
          break;
          case 2:
            $query = "UPDATE hersteller SET Firmenname='".mysql_real_escape_string($Firmenname)."', Land='".mysql_real_escape_string($Land)."', Status='".mysql_real_escape_string($Status)."', Link='".mysql_real_escape_string($Link)."' WHERE ID=".$entry;
          break;
        }
Meine Zeile
error_log("\n".$query, 3, "/tmp/query.log");
##############################
        #$result = mysql_query($query);
        dberror();
        echo "Ihre Eingabe war korrekt und wurde in die Datenbank eingetragen!";
        $db = mysql_close();
        dberror();
      }
function dbcall() {
  return true;
}
function dberror() {
  return true;
}
?>
Resultat in /tmp/query.log:
UPDATE hersteller SET Firmenname='foo' GmbH', Land='DE', Status='1', Link='viel text' WHERE ID=100
(wird jeweils angehängt)
Jörg Reinholz
 nicht angemeldet
 nicht angemeldet Auge
 Auge