La alternativa a mysql_escape_string
en PDO está usando declaraciones preparadas. En Yii por ejemplo:
$user = Yii::app()->db->createCommand()
->select('username, password')
->from('tbl_user')
->where('id=:id', array(':id'=>$_GET['userId']))
->queryRow();
(De la documentación de referencia de Yii http://www.yiiframework.com/doc/api /1.1/ComandoCDb )
Está protegido contra la inyección SQL cuando pasa parámetros a través de marcadores de posición en una declaración preparada.