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 :

Comprendre PDO [Tutoriel]


Sujet :

PHP & Base de données

  1. #61
    Membre habitué
    Inscrit en
    Avril 2003
    Messages
    397
    Détails du profil
    Informations forums :
    Inscription : Avril 2003
    Messages : 397
    Points : 133
    Points
    133
    Par défaut
    Oké merci , ça me rassure.

  2. #62
    Membre éprouvé
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour,

    Je trouve que c'est un bon tuto qui va beaucoup m'aider dans mon apprentissage.

    Merci.

    beegees

  3. #63
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Citation Envoyé par beegees Voir le message
    Bonjour,

    Je trouve que c'est un bon tuto qui va beaucoup m'aider dans mon apprentissage.

    Merci.

    beegees

    Me voilà heureux alors ! Bonne route !

  4. #64
    Membre du Club
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2011
    Messages : 48
    Points : 61
    Points
    61
    Par défaut coquille
    Bonjour,

    Il me semble avoir vu une petite faute dans l'instanciation de la connexion.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam);
    au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo = new PDO($strConnection, 'Utilisateur', 'Mot de passe', $arrExtraParam);
    Sinon merci pour ce tuto,
    Bilal

  5. #65
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    L'article à été écris pour être une base d'apprentissage saine à PDO. J'ai donc essayé de casser certains "mythes". Par la suite, la lecture d'article plus poussée devrait être facilité.
    toute a fait d'accord , personnellement j'ai appris pas mal de choses encore bravo +++
    juste faut voir le format pdf qui est un peut mal imprimer (page 8) .

  6. #66
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je découvre bien tardivement ton TOPO sur PDO !
    Un vrais bijoux, et pour cela mille bravos

    Je sais qu'il faut garder la "légéretée" a ton sujet, il n'empéche que
    le mécanisme du PREPARE qui reste un pilier de PDO
    (pas obligatoir comme tu l'a souligné) mériterait quelques précisions.

    A ce sujet je te soumet une analyse dont tu fera le trie si bon te semble
    pour l'incorporer si tu juges que cela n'alourdirait pas ton sujet.

    ____________________________________
    Préparé ou pas, avec ou sans bindparam, au final chaque exec envoie en une seule fois la requête et les vraies variables au gestionnaire de base de données (par exemple MySql) a la différence du PREPARE SQL !

    Dans un PREPARE (SQL par exemple) le gestionnaire reçoit et analyse la requête et attend tout envoi de données sur le pointeur de l'instruction préparée.

    Voilà pour le prépare ...
    ______________________________________

    Concernant "protection" "injection" et "échappement"

    l' injection doit être évitée par un contrôle (de notre choix)

    Pour le reste "protection" "échappement"

    Juste un petit historique que vous connaissez bien sur:

    Au début nous faisions avant un INSERT ou autre ... le fameux addslashes()
    avec la douce contrainte de contrôler l'état d' activation de ou non des magic_quotes_gpc...

    le résultat .. plein d' antislashs et obligé a la relecture de faire un
    stripslashes()

    Maintenant, les versions modernes de SQL / PHP ont cette superbe fonction
    mysql_real_escape_string qui fait EXACTEMENT la même chose que PDO

    A savoir doubler les ' et inscrire les caractères spéciaux et accentués sur deux octets ! ce qui protége bien les données.

    Ainsi la relecture est directe sans instructions !!
    ____________________________________

    A++ et encore BRAVO !
    Christele

  7. #67
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Préparé ou pas, avec ou sans bindparam, au final chaque exec envoie en une seule fois la requête et les vraies variables au gestionnaire de base de données (par exemple MySql) a la différence du PREPARE SQL !
    Pour Mysql (je ne sais pas pour les autres drivers), la préparation est par défaut émulé par soucis de compatibilité avec mysql < 5.1 mais il est possible d'utiliser la préparation du serveur mysql en changeant le paramètre ATTR_EMULATE_PREPARES.

    Maintenant, les versions modernes de SQL / PHP ont cette superbe fonction
    mysql_real_escape_string qui fait EXACTEMENT la même chose que PDO
    pas vraiment moderne : cette fonction existe depuis 11 ans et est maintenant classé comme obsolète à ne plus utiliser.
    Quand au fait qu'elle ferrait la même chose que PDO je ne vois pas trop à quoi tu fais référence.
    A savoir doubler les ' et inscrire les caractères spéciaux et accentués sur deux octets ! ce qui protége bien les données.
    Les accents ne posent pas de problème dans les requêtes et ne sont pas modifiés par mysql_real_escape_string. Ca serait d'ailleurs bien gênant d'avoir des caractères multioctet dans un encodage simple octet non ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #68
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Pour Mysql (je ne sais pas pour les autres drivers), la préparation est par défaut émulé par soucis de compatibilité avec mysql < 5.1 mais il est possible d'utiliser la préparation du serveur mysql en changeant le paramètre ATTR_EMULATE_PREPARES.
    Je n'ais pas contrôlé depuis longtemps, mais par défault j'étais "True" de base


    Citation Envoyé par sabotage Voir le message
    mysql_real_escape_string()
    pas vraiment moderne : cette fonction existe depuis 11 ans et est maintenant classé comme obsolète à ne plus utiliser.
    Quand au fait qu'elle ferrait la même chose que PDO je ne vois pas trop à quoi tu fais référence.
    Je fais référence justement a la protection des données tels que je l'ais écris
    plus bas.


    Citation Envoyé par sabotage Voir le message
    Les accents ne posent pas de problème dans les requêtes et ne sont pas modifiés par mysql_real_escape_string. Ca serait d'ailleurs bien gênant d'avoir des caractères multioctet dans un encodage simple octet non ?
    Oui tu as raison Sabotage, mais c'est ce que m'indique mon éditeur hexadécimal
    Dans un fichier non UTF8 j'ais bien cela ... mais tu me mets le doute,
    c'est peut-étre l'export en *.SQL qui provoque cela ???

    Bref tu m'as mis un gros doute sur tout cela, je vais appronfondir ces trois points

    A++ et merci
    Christele

  9. #69
    Futur Membre du Club
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    11
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 11
    Points : 5
    Points
    5
    Par défaut une erreur dans le tuto
    Je note une erreur dans le paragraphe nommé
    III.a. Établir une connexion avec PDO

    Le bloc try pour la connexion est écrit ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try {
        $strConnection = 'mysql:host=localhost;dbname=ma_base'; //Ligne 1
        $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
        $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion
        $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//Ligne 4
    }
    or la variable de la ligne 3 (commentée "//Ligne 3; Instancie la connexion"), $connStr, sort de nulle part. En fait, c'est la variable $strConnection qu'on devrait trouver à cet endroit.

    La ligne marquée 3 en commentaire devrait donc être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo = new PDO($strConnection, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion

  10. #70
    Membre régulier Avatar de slack457
    Homme Profil pro
    Inscrit en
    Juillet 2009
    Messages
    126
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 126
    Points : 98
    Points
    98
    Par défaut
    wow, super tuto !

    Tout est si clair, j'ai beaucoup apprécié de pouvoir comparer les codes MySQL et PDO, ça aide énormément à la compréhension.
    J'avais du mal a vraiment comprendre solidement PDO avec les autres tutos que j'ai pu lire sur le WEB. Pas avec celui-ci !

    Un grand merci !

    PS : bien vu maildeseb

  11. #71
    Membre averti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2002
    Messages
    726
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2002
    Messages : 726
    Points : 352
    Points
    352
    Par défaut
    merci pour l'article je me met à PDO mais y une chose que j'ai pas compris dans cet article
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $arrExtraParam = array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
    on a initialisé la variable $arrExtraParam
    mais jamais utilisée, comment l'utiliser ?
    peut être comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION, $arrExtraParam); //Ligne 4

  12. #72
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $arrExtraParam est utilise la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     $arrExtraParam= array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"); //Ligne 2
        $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam); //Ligne 3; Instancie la connexion
    http://fmaz.developpez.com/tutoriels...re-pdo/#LIII.a
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  13. #73
    Membre à l'essai
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Mai 2007
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Mai 2007
    Messages : 42
    Points : 20
    Points
    20
    Par défaut rowCount()
    Bonjour,

    Je reconnais le sujet commence à dater un peux, mais j'ai quelques remarques à faire dessus :

    1.Il me semble constater une erreur dans le paragraphe V.a :
    Dans la partie sans préparation de la requête
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $query = 'SELECT * FROM foo;';
    $statement = $pdo->query();
     
    echo $statement->rowCount() . ' résultat(s)';
    La ligne 2 devrait s'écrire comme ça $statement = $pdo->query($query);. (Sauf erreur de ma part)

    2.Toujours dans le paragraphe V.a La fonction rowCount() est utilisé sur une requête de type SELECT.
    Il est indiqué dans la documentation PHP que cette utilisation n'est pas recommandée.
    Peut-on donc vraiment utiliser cette fonction pour avoir le nombre de ligne sélectionné ?

  14. #74
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Bonjour,

    Ce tuto date un peu, néanmoins c'est une bonne base pour l'introduction à pdo (notamment pour ceux qui viennent de mysql puisque les syntaxes sont comparées au début) et il est encore assez visité c'est pourquoi je me permet quelques précisions :

    1/ la connexion chapitre III.a
    2/ Explication du faux bug de la clause limit chapitre V.c
    3/ le nombre de paramètres dynamique chapitre IV.b.

    1/ Depuis quelques années on peut passer le charset dans la chaine de connexion ce qui évite d'ajouter une option de configuration.
    Plus important il est très recommandé de désactiver l'émulateur pdo de php pour laisser travailler celui du sgbdd. Si le sgbdd n'a pas de gestionnaire pdo alors celui de php se remettra en marche même avec l'option désactivée. Le gros avantage est que le gestionnaire pdo du sgbdd est plus performant (car optimisé pour le sgbdd) et surtout vous ne serez plus contraints de formater vos variables en entiers pour les passer dans la clause limit (cf chapitre V.c). En effet le gestionnaire interne du sgbdd saura retourner le bon type en fonction des besoins de la requête.

    En suivant ces principes on peut donc faire une connexion de ce type :
    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
    try {
        $connStr = 'mysql:host=localhost;dbname=ma_base;charset=utf8';
     
        // Désactive l'émulateur pdo de php pour utiliser celui du sgbdd si disponible
        $arrExtraParam[PDO::ATTR_EMULATE_PREPARES] = false;
        $arrExtraParam[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
        // Si l'on souhaite utiliser le mode objet par défaut pour récupérer les données
        // $arrExtraParam[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_OBJ;
     
        $pdo = new PDO($connStr, 'Utilisateur', 'Mot de passe', $arrExtraParam);
    }
    catch(PDOException $e) {
        $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
        exit($msg);
    }
    Avec ce type de connexion, la problématique du chapitre V.c disparaît. Cela ouvre également la perspective de pouvoir passer une clause limit dans un tableau passé en paramètre à la fonction execute(). Autrement ce ne serait pas possible car les éléments des tableaux passés dans la fonction execute() sont formatés en string.

    Ce qui m'amène au chapitre IV.b qui est codé de manière un peu alambiquée (comme le confirme le commentaire à la fin du paragraphe).
    On pourrait faire plus simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $arr = array(12, 62, 61, 36, 92); // Le nombre d'éléments est variable.
     
    $count_arr = is_array($arr)? count($arr) : 0;
    if($count_arr > 0)
    {
    	$strPH = implode(',', array_fill(0,$count_arr,'?'));
     
    	$query = "SELECT * FROM membres WHERE id IN(" .$strPH. ")";
    	$prep = $pdo->prepare($query);
     
    	$prep->execute($arr);
     
    	$arrAll = $prep->fetchAll();
    }
    Maintenant si je souhaite ajouter une clause limit également dynamique :
    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
    $arr = array(12, 62, 61, 36, 92); //Le nombre d'éléments recherchés est variable.
    $limite = 2;
     
    $count_arr = is_array($arr)? count($arr) : 0;
    if($count_arr > 0)
    {
    	$strPH = implode(',', array_fill(0,$count_arr,'?'));
     
    	$query = "SELECT * FROM membres WHERE id IN(" .$strPH. ") LIMIT ?";
    	$prep = $pdo->prepare($query);
     
    	array_push($arr,$limite);
     
    	$prep->execute($arr);
     
    	$arrAll = $prep->fetchAll();
    }
    Notez que si je n'avais pas désactivé l'émulateur pdo de php dans les options de connexion, cette requête ne fonctionnerait pas.

  15. #75
    Membre confirmé
    Avatar de FMaz
    Inscrit en
    Mars 2005
    Messages
    643
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 643
    Points : 640
    Points
    640
    Par défaut
    Bonjour à tous.

    Merci pour vos commentaires constructif. Ce tutoriel était mon premier (et seul ici je crois). Depuis sa publication, j'ai changé de carrière donc je n'ai pas été très actif sur ce forum (pas dutout en fait). Donc par rapport à vos commentaires:

    ABCIWEB:
    - pour ce qui est de la méthode SGBDD, honnêtement je ne connais pas. Les choses ont peuvent avoir changées, mais j'ai probablement oublié depuis le temps.
    - En ce qui concerne l'exemple des place holders dynamique, je ne cherchais pas à démontrer la meilleure méthode, ni la plus compacte, ni la plus rapide. Mais la plus facile à comprendre. En ce sens, je trouve que l'exemple que j'ai proposé est plus facile à suivre et à comprendre que le (probablement meilleur) code que tu présente.

    Loup Solitaire:
    - semble avoir raison au sujet de la petite erreur, il faudrait que quelqu'un corrige $statement = $pdo->query(); -> $statement = $pdo->query($query); -

    maildeseb
    - Même chose, bien vu, il y a une erreur dans le code qui établi la connexion.


    Bref, je n'ai plus les outils de publication, ni les connaissances pour mettre à jour le tuto par rapport aux nouvelles pratiques ou aux nouvelles versions de PHP. Si quelqu'un est capable de reprendre la gouverne de ce tutoriel, j'offre mon accord à Developpez.net de le ré-attritrer le tutorial à un auteur capable de faire les modifications nécéssaires. Je souhaite seulement que mon nom demeure comme étant l'auteur original de l'article.

    Ps.: Je recois encore les emails de notification...




    Encore une fois merci à tous pour vos commentaires ! (Et désolé de ne pas pouvoir effectuer les corrections moi-même )

  16. #76
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par FMaz Voir le message
    Bonjour à tous.

    Merci pour vos commentaires constructif. Ce tutoriel était mon premier (et seul ici je crois). Depuis sa publication, j'ai changé de carrière donc je n'ai pas été très actif sur ce forum (pas dutout en fait). Donc par rapport à vos commentaires:

    Bref, je n'ai plus les outils de publication, ni les connaissances pour mettre à jour le tuto par rapport aux nouvelles pratiques ou aux nouvelles versions de PHP. Si quelqu'un est capable de reprendre la gouverne de ce tutoriel, j'offre mon accord à Developpez.net de le ré-attritrer le tutorial à un auteur capable de faire les modifications nécessaires. Je souhaite seulement que mon nom demeure comme étant l'auteur original de l'article.

    Ps.: Je reçois encore les emails de notification...
    Encore une fois merci à tous pour vos commentaires ! (Et désolé de ne pas pouvoir effectuer les corrections moi-même )
    En fait PDO n'est pas Mysql !! tout vient de là !
    Il y a en résumé : Mysql (Périmé), Mysqli conservé et PDO_Mysql qui a mon sens reste la roll's.
    Regardes ceci http://php.net/manual/fr/mysqlinfo.api.choosing.php

    Je ne peux pas me proposé à reprendre ton article, mais ça pourrait se faire à la rentrée.
    Amitiées

  17. #77
    Expert éminent sénior

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 380
    Points : 10 410
    Points
    10 410
    Par défaut
    Citation Envoyé par FMaz Voir le message
    En ce qui concerne l'exemple des place holders dynamique, je ne cherchais pas à démontrer la meilleure méthode, ni la plus compacte, ni la plus rapide. Mais la plus facile à comprendre. En ce sens, je trouve que l'exemple que j'ai proposé est plus facile à suivre et à comprendre que le (probablement meilleur) code que tu présente.
    C'est pas vraiment meilleur, c'est surtout plus pratique. Quand tu mentionnes à la fin du paragraphe IV.b. que "la perfection n'est pas de ce monde" c'est qu'effectivement le code devient un peu lourd avec des marqueurs dynamiques si l'on veut binder individuellement les variables.

    Tu ne pouvais guère faire mieux sauf en utilisant "array_fill" pour créer la chaine de marqueurs (mais ça reste une amélioration anecdotique), mais ce que je voulais surtout dire est que dans le cas de marqueurs dynamiques le passage du tableau de variables dans le execute() est la voie la plus pratique et du coup le code devient plus fluide Après on est bien d'accord que c'est pour optimiser le visuel et l'écriture du code, sinon c'est pas les foreach en plus qui vont changer significativement les performances pures.

    Pour le reste, l'histoire de désactiver l'émulateur pdo de php est une information que je ne vois pas assez à mon sens et pourtant c'est super pratique et plus performant donc dommage de s'en priver. D'autant plus qu'aujourd'hui tous les sgbdd ont leur propre gestionnaire pdo. Mais bon à l'époque de l'écriture du tuto cette info n'était peut être pas pertinente.

    Pour conclure, je te remercie de ce tuto car c'est celui dont je me suis servi en premier quand j'ai voulu passer à pdo après une longue période mysql puis mysqli. Je l'ai trouvé très bien fait, efficace, et il m'a permis d'acquérir rapidement de bonnes premières bases. Et c'est d'ailleurs parce que je continue à le recommander que j'ai voulu apporter ces quelques informations complémentaires pour l'actualiser

  18. #78
    Membre régulier
    Homme Profil pro
    En formation Concepteur Développeur d'Application
    Inscrit en
    Janvier 2018
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : En formation Concepteur Développeur d'Application

    Informations forums :
    Inscription : Janvier 2018
    Messages : 10
    Points : 90
    Points
    90
    Par défaut Merci beaucoup!
    Je suis débutant en programmation et je n'aime pas suivre bêtement les tutos car le lendemain j'ai quasiment tout oublié! par contre le fait de comprendre le fonctionnement et les différences avec les autre méthodes me permettent de beaucoup mieux retenir les processus, de m'aider à trouver les erreurs que je fais, que du bon quoi!
    C'est pour cela que je tiens à vous remercier pour le temps passé à créer cet article, à la pédagogie utilisée, c'est beaucoup plus clair pour moi et me permettra de mieux comprendre mon code pour repousser encore plus mes connaissances!!!
    Merci et bonne continuation!

Discussions similaires

  1. [PDO] Problème de requête préparée (à n'y rien comprendre?)
    Par waldo2188 dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 20/03/2007, 22h53
  2. [Concept][JavaBeans] Comprendre ?
    Par nicoo dans le forum Langage
    Réponses: 15
    Dernier message: 08/12/2004, 09h01
  3. [Procédure][java] A n'y rien comprendre
    Par Stessy dans le forum SQL
    Réponses: 2
    Dernier message: 18/03/2004, 16h05

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