Вы должны сделать и то, и другое.
$title = strtolower(preg_replace("/[^a-z0-9\-]+/i", "-", $title));
And then $title = mysql_real_escape_string($title);
Всегда полезно избегать значений MySQL, в этом случае не стоит его избегать, но если в будущем изменится правило для заголовка, и выможно поставить любой символ, может быть, вы не помните, чтобы изменить его