L'alternative à mysql_escape_string
dans PDO utilise des instructions préparées. En Yii par exemple :
$user = Yii::app()->db->createCommand()
->select('username, password')
->from('tbl_user')
->where('id=:id', array(':id'=>$_GET['userId']))
->queryRow();
(De la documentation de référence Yii http://www.yiiframework.com/doc/api /1.1/CDbCommand )
Vous êtes protégé contre l'injection SQL lorsque vous transmettez des paramètres via des espaces réservés dans une instruction préparée.