¿Es correcto esto para evitar ataques por inyección SQL en PHP?
Utilizo PDO y bindParam de esta forma: $stm->bindParam(1, $fechaDev);
public static function getInstance()
{
if (!isset(self::$instance)) //los :: para acceder a metodos y clases estaticas.
{
try{
self::$instance = new PDO(self::$dns, self::$username, self::$password);
self::$instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo 'Error al conectar con la Base de Datos';
}
}
return self::$instance;
}
class Devolver{
//ATRIBUTO para conseguir la conexion
private $dbh;
public function __construct()
{
// los :: para acceder a un metodo o variable estatica de otra clase
$this->dbh = Conexion::getInstance();
}
public function get_dbh()
{
return $this->dbh;
}
/*----------------Funciones-----------------*/
function getFechaPrestamo($Id_prestamo){
$sql = "SELECT prestado FROM prestamos WHERE id_prestamo = (?)";
$stm = $this->dbh->prepare($sql);
$stm->bindParam(1, $Id_prestamo);
$stm->execute();
foreach($stm as $row){
}
return $row[0];
}
//--------------------------------------------------
function devolverLibro($IdObraPresta, $fechaDev){
$sql = "UPDATE prestamos SET devuelto = (?) WHERE id_prestamo = (?)";
$stm = $this->dbh->prepare($sql);
$stm->bindParam(1, $fechaDev);
$stm->bindParam(2, $IdObraPresta);
$stm->execute();
}
}