Outils pour utilisateurs

Outils du site


tic:pdo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
tic:pdo [2016/08/12 13:23] blooptic:pdo [2016/08/12 13:30] (Version actuelle) bloop
Ligne 16: Ligne 16:
 <code>$variablePropre = $connection->quote($variable); <code>$variablePropre = $connection->quote($variable);
 $variablePropre = $connection->quote($variable, PDO::PARAM_STR); //même chose</code> $variablePropre = $connection->quote($variable, PDO::PARAM_STR); //même chose</code>
 +
  
 Le deuxième argument (qui est optionnel), est le type de valeur à protéger.\\ Le deuxième argument (qui est optionnel), est le type de valeur à protéger.\\
Ligne 27: Ligne 28:
 Par défaut, si vous ne spécifiez pas de deuxième argument, la valeur PDO ::PARAM_STR sera utilisée. Par défaut, si vous ne spécifiez pas de deuxième argument, la valeur PDO ::PARAM_STR sera utilisée.
  
-**Méthodes //exec// et //query// :**+**Méthodes //exec// et //query// :**\\
 Pour apporter des changements (INSERT, UPDATE, DELETE) à la BDD, on utilise la méthode //exec// : Pour apporter des changements (INSERT, UPDATE, DELETE) à la BDD, on utilise la méthode //exec// :
 +<code>$connexion->exec("UPDATE membres SET nom='toto'"); // on modifie le nom de tous les utilisateurs
 +
 +$nb=$connexion->exec("UPDATE membres SET nom='toto'"); // on modifie le nom de tous les utilisateurs et la variable '$nb' renvoi le nombre de lignes affectées.</code>
 +
 +Pour récupérer une information (SELECT), on utilise la méthode //query// :
 +<code>$resultats=$connexion->query("SELECT nom FROM membres");
 +$resultats->setFetchMode(PDO::FETCH_OBJ); // on dit qu'on veut que le résultat soit récupérable sous forme d'objet
 +while( $ligne = $resultats->fetch() ) {
 +        echo 'Membre : '.$ligne->nom.'<br />'; // on affiche les membres
 +        }
 +$resultats->closeCursor(); // on ferme le curseur des résultats</code>
 +
 +Le //setFetchMode// permet d’indiquer sous quel format on souhaite récupérer les résultats de la requête. Il existe plusieurs méthodes : PDO ::FETCH_ASSOC, PDO ::FETCH_BOTH, PDO ::FETCH_OBJ, etc... (Lire la documentation pour savoir lequel utiliser).\\
 +Personnellement j’utilise le FETCH_OBJ qui permet une lecture claire.
 +
 +Il existe une méthode plus courte d’écriture pour spécifier le mode, directement dans fetch(). Il est préférable de toujours indiquer une méthode (sous cette forme), ce qui facilite la lecture du code :
 +<code>$ligne = $resultats->fetch(PDO::FETCH_OBJ);</code>
 +
 +Dans le cas d’un //query//, pour connaître le nombre de lignes renvoyées par le SELECT on utilise la méthode //rowCount()// :
 +<code>$nbResult=$resultats -> rowCount();</code>
 +
 +**Requêtes préparées : la méthode //prepare// :**\\
 +Un des gros avantages des requêtes préparées est la protection des injections SQL (plus besoin d’utiliser la méthode //quote//)
 +<code>Documentation à venir...</code>
tic/pdo.1471001013.txt.gz · Dernière modification : 2016/08/12 13:23 de bloop