bueno,
bien utilizado PDO te brinda mecanizamos anti SQL Inyection,
pero tampoco te evita ejecutar una cadena SQL construida a mano, así que depende del programador usar las
buenas practicas impuestas por PDO
MySQLi me imagino (nunca la he usado) debe tener algo similar, pero la relativa ventaja frente a PDO es que es más optima con MySQL,
obviamente porque sólo se puede usar y fúe diseñada para MySQL.
PDO en cambio puede usar un amplio rango de SDBMS, por el cual es la que recomiendo de inmediato, si estás muy seguro de que no piensas migrar de MySQL, usa MySQLi.
y recuerda,
evitar el SQL Inyection también depende del programador, no basta sólo confiar en la librería, sino saber utilizarla adecuadamente