la cosa giusta è lo str_replace
fai qualche prova visualizzando al query invece di eseguirla
ricordati che lo str_replace ha questa struttura:
fai un codice del genere per provareCodice PHP:
$var_out = str_replace("testo o carattere da cambiare", "testo o carattere in cui cambiare", $var_in);
Codice PHP:
<?php
$query = "....";
$new_query = str_replace("[b]'[/b]", "@", $query);
die($new_query);
?>