Finalement, quelle est la différence entre ces deux scripts ?

Discussion dans 'Développement d'un site Web ou d'une appli mobile' créé par Alorsladaccord, 29 Septembre 2015.

  1. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    485
    J'aime reçus:
    0
    Bonjour,

    Grâce à certains ici (et sur le forum Développez), j'ai réussi à écrire deux petits scripts pdo/mysqli. Ils fonctionnent bien, mais à vrai dire je n'ai pas vraiment compris la différence...
    Tout de suite avec deux exemples simplifiés. En clair, il s'agit d'afficher une liste d'articles par ordre alphabétique. La seule différence est que le premier script les trie en plus en fonction d'une lettre retournée par l'URL :

    SCRIPT n°1
    Code:
    $dbh = new PDO('mysql:host=localhost;dbname=dico','dicoco7', 'SD_q,[nX,');   
    /** on définit la requete sql */
    $sql = "SELECT *
    FROM cms_custom_database
    WHERE field_2 LIKE :lettre
    ORDER BY 
    record_dynamic ASC
    ";
    $stmt = $dbh->prepare ($sql); /* On prépare la requête */
    /** On prépare les paramètres */
    $params = array(':lettre' => $_GET['lettre'].'%');
    /** On execute la requete */
    $stmt->execute($params);
    while($livre=$params = $stmt->fetch(PDO::FETCH_OBJ))
    {
    echo''.$livre->field_33.''
    }
    SCRIPT n°2
    Code:
    echo'
    $dbh = new PDO('mysql:host=localhost;dbname=dico','dicoco7', 'SD_q,[nX,');   
    
    $livres = $dbh->query('
    SELECT 
    *
    FROM 
    cms_custom_database_2
    ORDER BY 
    primary_id_field 
    );
    
    while ($livre = $livres->fetch())
    {
    echo'
    '.$livre['primary_id_field'].''
    }
    
    ALORS QUESTIONS, S'IL-VOUS-PLAIT :
    1) Pourquoi suis-je obligé dans les deux cas d'établir une connexion avec new PDO ? Cela signifie-t'il que je fais ainsi de la programmation objet ? Et pouvais-je faire autrement ?
    2) Dans le premier cas, j'ai une requête préparée et pas dans l'autre. Le premier cas est celui qui récupère une variable $_GET[], par l'url donc. La requête préparée était-elle par suite indispensable ? Ou alors que pouvait-on faire d'autre ?
    3) finalement, il n'est question nulle part de mysqli, ici ? C'est seulement dans le premier cas du POO avec une requête préparée et dans le second u POO, tout court ? :oops:
    4) Et dans le second cas, pourquoi affiche-t'on le résultat de la requête "à l'ancienne", comme ça $res['field'], plutôt que comme ça $res->field ?


    Merci d'avance pour vos réponses ! La pratique vaut mieux que mille articles...
     
  2. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 361
    J'aime reçus:
    2
    1- essaye d'exécuter une requête sans te connecter à la base de données ^^
    2- le premier script a un paramètre dans la requête, pas le second, donc dans le second il n'y a rien à préparer :D
    3- mysqli est une fonction php :)
    4- ce n'est pas "à l'ancienne", c'est selon que ta fonction renvoie un tableau (second cas) ou un objet (premier cas)
     
  3. Alorsladaccord
    Alorsladaccord WRInaute occasionnel
    Inscrit:
    30 Juillet 2014
    Messages:
    485
    J'aime reçus:
    0
    Salut chère Marie-Aude,

    Oui j'ai bien compris, mais est-on obligé désormais de se connecter de cette manière, avec la formule new PDO ?
    Hin hin
    Et pas PDO ?
    Dans le premier cas, plus novateur à mon sens, y-avait-il moyen de faire autrement ?
    Il faut que je pige quand je dois utiliser pdo, ou mysqli et si je peux choisir ou pas du tout, ou si ça s'utilise ensemble obligatoirement dans certains cas, ou pas, ou jamais, etc...
     
  4. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 361
    J'aime reçus:
    2
  5. baud74
    baud74 WRInaute impliqué
    Inscrit:
    21 Juillet 2014
    Messages:
    586
    J'aime reçus:
    0
    la principale différence, c'est que dans un cas, tu restreins les données de la table avant de trier, et dans l'autre, tu tries la table entière. c'est bien plus long dans le second cas.
     
Chargement...
Similar Threads - Finalement différence scripts Forum Date
Et si finalement, j'affichais tout sur la même page ? Débuter en référencement 14 Novembre 2015
Finalement, follow ou nofollow ? Netlinking, backlinks, liens et redirections 27 Mai 2014
Rubrique "Actualité" en index qui finalement me pénalise Référencement Google 13 Septembre 2012
Vos avis, finalement ? Demandes d'avis et de conseils sur vos sites 19 Mai 2012
URL REWRITTING est il finalement bien utile pour le référencement ? Débuter en référencement 26 Août 2011
Textbroker finalement arrivé en France Rédaction web et référencement 22 Février 2011
La vieille histoire : NoFollow, qu’en est-il finalement ? Google : l'entreprise, les sites web, les services 11 Juin 2010
Google Analytics : différence d'audience avec l'export Excel Google Analytics 25 Juin 2020
Google Analytics : Utilisateurs > différence entre Sommes Graphique /normale Débuter en référencement 25 Mai 2020
Difference indexe Problèmes de référencement spécifiques à vos sites 28 Février 2020