Programmation PHP/MySQL
PHP offre plusieurs fonctions d’interaction avec MySQL.
mysql_connect().
Exécution d'une requête.
Maintenant que nous sommes connectés à notre base de données, il est possible d’exécuter des requêtes dessus. En voici un exemple 
De cette manière on récupère un tableau associatif sous la forme "Clé"->"Valeur" pour chacun des enregistrements retournés par la requête.
Il existe d'autres fonctions pour cela :
Exemple :
Fermeture d'une connexion.
 //Ferme la connexion MySQL
 mysql_close ($ressource);
mysqli_connect().
Cette fonction fonctionne un peu comme codice_9 :
$link = mysqli_connect("BDDADRESSE","BDDUSER","BDDPASS","BDDNAME");
mysqli_query($link, $query);
mysqli_close($link);
Les fonctions de manipulation de données ont pour préfixe "mysqli" avec les mêmes suffixes que celles du paragraphe précédent :
Classe mysqli.
La classe codice_14 permet les mêmes opérations que les fonctions précédentes, avec l'avantage de la programmation objet en plus (ex : héritage, introspection...) :
$query = 'SELECT * FROM NOMTABLE';
$link = new mysqli("BDDADRESSE","BDDUSER","BDDPASS","BDDNAME");
if ($link->connect_error) {
 die(mysqli_connect_errno());
$result = $link->query($query);
while ($row = $result->fetch_assoc()) {
 var_dump($row);
$result->close();
$link->close();
codice_15 accepte les valeurs suivantes en second paramètre :

Programmation PHP/PDO
Introduction.
PDO () est une extension définissant l'interface pour accéder à plusieurs types de base de données, fournie automatiquement depuis PHP 5.1. Avec ce système, pour utiliser plusieurs SGBD il n'est pas nécessaire de changer les fonctions de communication dans tout le code, mais seulement les arguments envoyés au constructeur.
Les pilotes suivants sont disponibles :
Et aussi via .
Installation.
Machine hôte.
Pour activer les différents SGBD qui doivent communiquer avec PDO, il faut ajouter ou décommenter les lignes codice_1 dans php.ini, que ce soit sur Apache ou IIS. Exemple :
 extension=php_pdo_firebird.dll
 extension=php_pdo_mysql.dll
 extension=php_pdo_oci.dll
 extension=php_pdo_odbc.dll
 extension=php_pdo_pgsql.dll
 extension=php_pdo_sqlite.dll
 extension=php_pdo_sqlsrv_54_ts.dll
Les .dll de Microsoft SQL Server sont téléchargeables sur le site officiel.
Docker.
MySQL :
 RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
PostgreSQL :
 RUN apt-get update && apt-get install -y libpq-dev
 RUN docker-php-ext-install pdo_pgsql && docker-php-ext-enable pdo_pgsql
Les classes de l'extension PDO.
L'extension PDO comporte trois classes :
Cette classe offre des méthodes de parcours, de comptage, d'informations.
Accès à la base de données avec PDO.
L'accès à la base de données se fait en instanciant un objet PDO. Les paramètres à indiquer au constructeur sont :
Par exemple, pour accéder à une base de données de nom "ma_bdd" accessible sur le port "mon_port" du serveur "mon_serveur" avec l'utilisateur "mon_id" associé au mot de passe "mon_mot_de_passe", le code sera le suivant :
$connexion = new PDO('mysql:host=mon_serveur;dbname=ma_bdd;port=3306','mon_id','mon_mot_de_passe');
$connexion = new PDO('sqlsrv:server=mon_serveur:mon_port;Database=ma_bdd','mon_id','mon_mot_de_passe');
$connexion = new PDO('odbc:nom_de_la_source','mon_id','mon_mot_de_passe');
$connexion = new PDO('pgsql:host=mon_serveur;dbname=ma_bdd;port=5432;user=mon_id;password=mon_mot_de_passe');
Passer des requêtes en PDO.
Des méthodes permettent de passer des requêtes à l'objet récupéré lors de la connexion.
La méthode codice_6 permet de passer et exécuter une requête SQL de type INSERT, UPDATE, DELETE.Elle retourne le nombre de lignes affectées par la requête.
$requete="DELETE * FROM matable WHERE champ1='mavaleur'";
$resultat=$connexion->exec($requete);
echo $resultat.' suppressions effectuées';
La méthode codice_8 permet de passer et exécuter une requête SQL de type SELECT.Elle retourne le jeu de résultats (s'il y en a) sous forme d'objet PDOStatement. 
$requete="SELECT champ1, champ2 FROM matable";
$resultat=$connexion->query($requete);
Les paramètres de la méthode codice_16.
La méthode codice_17 peut avoir en paramètre le type de retour du résultat. Par défaut, sans paramètre, le paramètre implicite est codice_18. 
Exemple d'utilisation :
while ($ligne = $resultat ->fetch(PDO::FETCH_ASSOC)) { 
 echo $ligne['champ3'].' '.$ligne['champ1'].'<br/>';

Exemple d'utilisation :
while ($ligne = $resultat ->fetch(PDO::FETCH_NUM)) { 
 echo $ligne[2].' '.$ligne[0].'<br/>'; 
Faire une requête préparée avec PDO.
codice_23 permet de préparer une requête que l'on exécutera ensuite avec la méthode codice_15. 
Les variables (parties de la requête spécifiques au moment de l'exécution) seront passées à la requête préparée grâce à cette méthode codice_25. Ce dispositif protège l'application d'attaque de type .
Exemple :
 $pdoStatement = PDO::prepare('SELECT * FROM people WHERE name = :name');
 $pdoStatement->bindParam(':name', $name, PDO::PARAM_STR);
 $pdoStatement->execute();
 return $pdoStatement->fetchAll(PDO::FETCH_ASSOC);
Jongler avec plusieurs SGBD en même temps.
Pour exécuter alternativement des requêtes sur plusieurs SGBD, par exemple pour comparer leurs bases :

Programmation PHP/SQLite
 est le moteur de base de données intégré à PHP5.
Connexion.
// On se connecte à la base
// CHEMIN_BDD constitue de chemin physique de la base de données
$db = new SQLiteDatabase(CHEMIN_BDD);
Exécution d'une requête.
Maintenant que nous sommes connectés à notre base de données, il est possible d’exécuter des requêtes dessus. En voici un exemple 
$requete = "SELECT * FROM NOMTABLE";
$res = $db->arrayQuery ($requete, SQLITE_ASSOC);
On obtient alors tous les enregistrements présents dans la table nom table, et pour exploiter les enregistrements, on peut boucler de la manière suivante :
foreach($res as $enregistrement) {
 $nom = $enregistrement['NOM'];
 $prenom = $enregistrement['PRENOM'];
 $adresse1 = $enregistrement['ADRESSE1'];
 $adresse2= $enregistrement['ADRESSE2'];
 $tel1 = $enregistrement['TEL1'];
 $tel2 = $enregistrement['TEL2'];
De cette manière on récupère un tableau associatif sous la forme "Clé"->"Valeur" pour chacun des enregistrements retournés par la requête. C'est la constante SQLITE_ASSOC qui permet cela. La constante SQLITE_NUM permet de retourner un tableau indexé numériquement.
Il existe d'autres méthodes...
Fermeture d'une connexion.
 $db->close();

Psychologie cognitive pour l'enseignant/Explications et plan du cours

Psychologie cognitive pour l'enseignant/Résolution de problèmes - théorie

Psychologie cognitive pour l'enseignant/Catégorisation et conceptualisation

Psychologie cognitive pour l'enseignant/Charge cognitive

Chill/Le module de statistiques pour les écoles de devoirs et centres de vacances subventionnées par l'Office National de l'Enfance (ONE)