probabilmente perchè non sempre l'output di mysql_error() è messo su due righe;

con str_replace sostituisco nella stringa tutti i caratteri 'return' con un semplice spazio, dato che non sei tu a generare la stringa ma mysql_error l'unica soluzione che hai è 'ripulirla' prima di usarla