Kannst Du beide drinnen lassen.
Was bewirkt sql_freeresult?
Damit wird ein abgefragtes Ergebnis, also Datensätze, wieder gelöscht, d.h. die Variable $result geleert, die Verbingung zur Tabelle beendet und einiges mehr.
Wenn nun keine Abfrage, also SELECT oder SHOW TABLE oder ähnliches vorliegt, um eben Datensätze abzurufen, läuft sql_freeresult (dahinter steht eigentlich eine andere Funktion) auf einen Fehler, der gerade von mysql 4.x nicht ignoriert wird.
Daher ist das Script zu prüfen, ob es irgendwo ein $db->sql_freeresult($result); gibt, das nach einer
Nicht][n]-Abfrage sondern nach z.B. INSERT INTO, UPDATE, DELETE oder Ähnlichem steht.
Denn wo nichts zurückkommt, kann man auch nichts entfernen 