Php - fonction de protection de chaine

bonjour
est ce que cette fonction suffi pour rentrer une chaine dans ma base de données sans risques ?
    function protege($data){ 
 return filter_var($data,FILTER_SANITIZE_STRING); 
    }


merci

6 réponses

  1. J'utilise en général mysql_real_escape_string, qui fonctionne à tous les coups !
    0
    1. je peu pas je suis avec PDO
      0
      1. Premier résultat en tapant "PDO escape string" dans Googe :

        <?php
        // Instantiate new PDO object (will create connection on the fly)
        $dbh = new PDO('mysql:dbname=someDB;host=someHost');
        // Execute a prepared statement by binding PHP variables
        $calories = 150;
        $colour = 'red';
        $sth = $dbh->prepare('SELECT name, colour, calories
            FROM fruit
            WHERE calories < :calories AND colour = :colour');
        $sth->bindParam(':calories', $calories, PDO::PARAM_INT);
        $sth->bindParam(':colour', $colour, PDO::PARAM_STR, 12);
        $sth->execute();
        ?>
        


        Source : https://stackoverflow.com/questions/1742066/why-is-pdo-better-for-escaping-mysql-queries-querystrings-than-mysql-real-escape
        0
        1. ouéé ouéé mais sans passer par prepare..
          => en fait je me demandais juste si le filter sanitize était sufisant ou pas
          0
          1. Pourquoi utiliser une fonction extérieure à PDO si c'est la classe que tu utilises ?
            0
            1. c'est juste a titre informatif, on peut tres bien avoir a nettoyer une chaine sans vouloir forcément la stocker dans une base.
              0