Bien en el manual se puede leer
Cita: Si no se necesitan reglas complicadas de reemplazo (como expresiones regulares), se puede utilizar siempre esta función en lugar de preg_replace().
Por lo que diria que obsoleta no esta.
Intenta esto, de paso te ahorras un par de consultas a la base de datos
Código PHP:
Ver original<?php
array('á', 'à', 'ä', 'â', 'ª', 'Á', 'À', 'Â', 'Ä'), array('a', 'a', 'a', 'a', 'a', 'A', 'A', 'A', 'A'), $nombre));
$guardar = "INSERT INTO pruebasmall (nombre,url) VALUES ('".utf8_encode($nombre)."','".$url."')";
echo "guardado correctamente";
}else{
echo "error al guardar";
}
?>
Si no funciona asi cambia utf8_
encode($nombre) por utf8_
decode($nombre), uno de los dos funcionará...
(Podrias usar una construcción con el id de url y te ahorrarias ese campo calculado:
ahi tienes nombre y url del $unid. Donde url es un alias no un campo de la tabla
(si $unid=10, la url será "usu10", ahora solo tienes que asegurarte que exista)