IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Première requête PDO


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2011
    Messages : 101
    Par défaut Première requête PDO
    Bonjour à tous,

    Je voulais vous soumettre ma première requête PDO, que j'ai codée avec les quelques infos que j'ai prises sur le web.

    Je voulais savoir si ca tenais la route, et quelles améliorations je pourrais apporter, notamment d'un point de vue sécurité...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    try
    {
    	$pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    	$DB = new PDO('mysql:host=localhost;dbname=stephanebleus', 'root', '', $pdo_options);
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
     
    try
    {
    	// On récupère les données POST
    	$titre = $DB->quote($_POST['titre']); 
    	$contenu = $DB->quote($_POST['contenu']);
     
    	// Insertion dans la base de donnée							
    	$req = $DB->exec("INSERT INTO articles(titre, contenu) VALUES ($titre, $contenu)");
     
    	// Redirection vers la page d'accueil
    	header("Location: index.php");
     
    	// Fermeture du curseur
    	$req->closeCursor();
    }
    catch(Exception $e)
    {
    	die('Erreur : '.$e->getMessage());
    }
    Merci d'avance

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    hello,
    c’est pas pas mal même si c'est du copié-collé
    change les die en exit, le closeCursor est inutile, et fait une vérification avant de lancer le header, rajoute le charset dans le DSN

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    Personnellement quand même quitte à utiliser PDO, j'utiliserais les requêtes préparées.

    http://php.net/manual/fr/pdo.prepared-statements.php

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Tolriq Voir le message
    Personnellement quand même quitte à utiliser PDO, j'utiliserais les requêtes préparées.

    http://php.net/manual/fr/pdo.prepared-statements.php
    pourquoi ?

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    Suffit juste de lire le lien que j'ai posté peut être ?

    Toujours est il qu'il demande bien comment améliorer le code pour une future réutilisation et augmenter la sécurité.

    Le prepare permet d'être sur de ne pas oublier les échappements dans le cas de cet exemple simple.

    Et dès qu'il utilisera PDO pour ses select il en verra dans de nombreux cas les avantages en vitesse d’exécution.

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Tolriq Voir le message
    Suffit juste de lire le lien que j'ai posté peut être ?

    Toujours est il qu'il demande bien comment améliorer le code pour une future réutilisation et augmenter la sécurité.

    Le prepare permet d'être sur de ne pas oublier les échappements dans le cas de cet exemple simple.

    Et dès qu'il utilisera PDO pour ses select il en verra dans de nombreux cas les avantages en vitesse d’exécution.
    je sais très bien ce que s'est
    mais je doute que toi tu saches vraiment a quoi servent les requêtes préparées, parce que c'est pas du tout à "augmenter la sécurité" et " ne pas oublier les échappements"

Discussions similaires

  1. Réutilisation d'un Statement après la première requète
    Par JeanNoel53 dans le forum InterBase
    Réponses: 6
    Dernier message: 15/06/2010, 20h26
  2. Première requête doctrine
    Par joff_symfony dans le forum ORM
    Réponses: 3
    Dernier message: 05/05/2010, 09h01
  3. Réponses: 4
    Dernier message: 25/02/2009, 14h22
  4. [PDO] Pb avec requête PDO
    Par wolfe dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 05/08/2008, 13h09
  5. Réponses: 3
    Dernier message: 19/05/2008, 10h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo