Wie lautet die Zeile, bei der die Fehlermeldung kommt?
select nachname from user where User = "Peter"
Das ist 1. keine Zeile und 2. steht das nicht in der Zeile, die die Fehlermeldung hervorbringt.
Was willst Du an der Stelle liefern und was lieferst Du tatsächlich?
Nachname/Nachname
Wenn Du etwas was eine "valid MySQL-Link resource" erwartet mit einem Nachnamen fütterst, dann kann das nichts werden. Ist jetzt klar, was ich von Dir wissen will?
Vielleicht steht irgendwo ein ein if mit einem einzigen "=" mit dem Du das Argument, welches ein2 "valid MySQL-Link resource" ist mit etwas überschreibst, statt vergleichst?!
Die Funktion wird dutzende male aufgerufen und läuft klaglos. Nur in einigen seltenen Fällen halt nicht :-(
Na und? Möglicherweise wird die Stelle nur selten wirksamm. Das bleibt natürlich Spekulation, solange wir den Code nicht kennen.