TODOPIC

Misceláneas - Interés General => Off Topic => Mensaje iniciado por: micro_pepe en 06 de Noviembre de 2013, 13:56:49

Título: Evitar ataques inyección SQL
Publicado por: micro_pepe en 06 de Noviembre de 2013, 13:56:49
¿Es correcto esto para evitar ataques por inyección SQL en PHP?

Utilizo PDO y bindParam de esta forma: $stm->bindParam(1, $fechaDev);

Código: [Seleccionar]
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;  
  }

Código: [Seleccionar]


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();
}

}