Changeset 36714 in spip-zone


Ignore:
Timestamp:
Mar 28, 2010, 12:04:03 AM (9 years ago)
Author:
gilles.vincent@…
Message:

Ajout d'exemples issus de programmer.spip.org (meme s'il n'ont qu'un rapport lointain, a aide a comprendre)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • _plugins_/extension_mysqli/req/mysql.php

    r36712 r36714  
    55 *
    66 * @license    GNU/GPL
    7  * @package    plugin
     7 * @package    plugins
    88 * @subpackage mysqli
    99 * @category   BDD
     
    2222/**
    2323 * fonction pour changer la connexion aux serveurs MySQL en gardant les paramètres existants
     24 *
    2425 * Cette fonction sert de constructeur de l'instance de connexion MySQLi
    2526 *
     
    221222 * Modifie la structure d'une table ou base
    222223 *
     224 * S'utilisera comme ceci :
     225 * <code>
     226 * sql_alter("TABLE table ADD COLUMN colonne INT");
     227 * sql_alter("TABLE table ADD colonne INT"); // COLUMN est optionnel
     228 * sql_alter("TABLE table CHANGE colonne colonne INT DEFAUT '0'");
     229 * sql_alter("TABLE table ADD INDEX colonne (colonne)");
     230 * sql_alter("TABLE table DROP INDEX colonne");
     231 * sql_alter("TABLE table DROP COLUMN colonne");
     232 * sql_alter("TABLE table DROP colonne"); // COLUMN est optionnel
     233 * // possibilité de passer plusieurs actions :
     234 * sql_alter("TABLE table DROP colonneA, DROP colonneB");
     235 * </code>
     236 *
    223237 * @link    http://doc.spip.org/@spip_mysql_alter
    224238 * @param   string  $query     La requête MySQL
     
    269283 * fonction instance de sql_select
    270284 *
    271  * voir ses specs dans {@link http://doc.spip.org/@abstract.php abstract.php}
    272  * traite_mysqli_query pourrait y etre fait d'avance ce serait moins cher
     285 * voir ses specs dans {@link http://doc.spip.org/abstract_sql-php abstract_sql.php}<br>
     286 * Traite_mysqli_query pourrait y etre fait d'avance ce serait moins cher<br>
    273287 * Les \n et \t sont utiles au debusqueur.
     288 *
     289 * La fonction {@link http://doc.spip.org/@sql_select sql_select()} est souvent couplée à
     290 * {@link http://doc.spip.org/@sql_select sql_fetch()} comme ceci :
     291 * <code>
     292 * // sélection
     293 * if ($resultats = sql_select('colonne', 'table')) {
     294 *     // boucler sur les résultats
     295 *     while ($res = sql_fetch($resultats)) {
     296 *         // utiliser les résultats
     297 *         // $res['colonne']
     298 *     }
     299 * }
     300 * </code>
    274301 *
    275302 * @link    http://doc.spip.org/@spip_mysql_select
     
    311338 * 0+x avec un champ x commencant par des chiffres est converti par MySQL
    312339 * en le nombre qui commence x.
     340 *
    313341 * Pas portable malheureusement, on laisse pour le moment.
    314342 *
     
    408436/**
    409437 * Changer les noms des tables ($table_prefix)
     438 *
    410439 * Quand tous les appels SQL seront abstraits on pourra l'améliorer
    411440 */
     
    460489/**
    461490 * Retourne les bases accessibles
     491 *
    462492 * Attention on n'a pas toujours les droits
    463493 *
     
    475505 *
    476506 * Cette fonction utilise 2 tableaux PHP :
    477  * champs: champ => type
    478  * cles: type-de-cle => champ(s)
    479  * si $autoinc, c'est une auto-increment (i.e. serial) sur la Primary Key
     507 * - champs: champ => type
     508 * - cles: type-de-cle => champ(s)
     509 *
     510 * si $autoinc, c'est une auto-increment (i.e. serial) sur la Primary Key.<br>
    480511 * Le nom des caches doit être inférieur à 64 caractères
    481512 *
     
    549580 * Fonction de création d'une vue SQL nommée $nom
    550581 *
     582 * <b>Application :</b><br>
     583 * Ce petit exemple montre le fonctionnement, en créant une table
     584 * (bien inutile) à partir de 2 colonnes d’une rubrique :
     585 * <code>
     586 * $select = sql_get_select(array(
     587 *         'r.titre AS t',
     588 *         'r.id_rubrique AS id'
     589 *     ), array(
     590 *         'spip_rubriques AS r'
     591 *     ));
     592 * // creer la vue
     593 * sql_create_view('spip_short_rub', $select);
     594 * // utiliser :
     595 * $titre = sql_getfetsel('t', 'spip_short_rub', 'id=8');
     596 * </code>
    551597 * @link    http://doc.spip.org/@spip_mysql_create_view
    552598 * @param   string  $nom
     
    630676/**
    631677 * Récupère la definition d'une table ou d'une vue MySQL
    632  * colonnes, indexes, etc.
     678 *
     679 * Les éléments obtenus sont les colonnes, indexes, etc.. <br>
    633680 * au même format que la définition des tables de SPIP
    634681 *
     
    706753
    707754//
    708 // Récuperation des résultats
     755// Récupération des résultats
    709756//
    710757
    711758/**
    712759 * Retourne un tableau qui correspond à la ligne lue ou NULL s'il n'y a plus
    713  * de lignes dans le jeu de résultats $r
     760 * de lignes dans le jeu de résultats $r.
     761 *
     762 * Cette fonction s’utilise en partenariat étroit avec sql_select(),
     763 * souvent employé dans cette association :
     764 * <code>
     765 * if ($res = sql_select('colonne', 'table')) {
     766 *     while ($r = sql_fetch($res)) {
     767 *         // utilisation des resultats avec $r['colonne']
     768 *     }
     769 * }
     770 * </code>
    714771 *
    715772 * @link http://doc.spip.org/@spip_mysql_fetch
     
    732789 * Déplace le pointeur interne de résultat associé au jeu de résultats
    733790 * représenté par result, en le faisant pointer sur la ligne spécifiée
    734  * par row_number
     791 * par row_number.
    735792 *
    736793 * @param   mysqli_result  $r
     
    750807
    751808/**
    752  * Retourne le nombre de résultats d'un SELECT
     809 * Retourne le nombre de résultats d'un SELECT.
     810 *
     811 * <b>Application</b> :<br>
     812 * Retourner <i>false</i> s’il y a des articles dans une rubrique :
     813 * <code>
     814 * if (sql_countsel('spip_articles', array(
     815 *    "id_rubrique=$id_rubrique",
     816 *    "statut <> 'poubelle'"
     817 *    ))) {
     818 *    return false;
     819 * }
     820 * </code>
    753821 *
    754822 * @link    http://doc.spip.org/@spip_mysql_countsel
     
    789857
    790858/**
    791  * Retourne le dernier code d'erreur produit
    792  * En cas de perte de connexion avec le serveur, il ne faut pas recalculer le cache
     859 * Retourne le dernier code d'erreur produit.
     860 *
     861 * En cas de perte de connexion avec le serveur, il ne faut pas recalculer le cache.
    793862 *
    794863 * @link    http://doc.spip.org/@spip_mysql_errno
     
    823892
    824893/**
    825  * Libère la mémoire associée à un résultat
    826  *
     894 * Libère la mémoire associée à un résultat.
     895 *
     896 * À noter que des fonctions de l’API appellent cette fonction automatiquement. C’est le cas de :
     897 * - {@link http://doc.spip.org/@sql_fetsel sql_fetsel} (et {@link http://doc.spip.org/@sql_getfetsel sql_getfetsel}),
     898 * - {@link http://doc.spip.org/@sql_fetch_all sql_fetch_all} (et {@link http://doc.spip.org/@sql_allfetsel sql_allfetsel}),
     899 * - {@link http://doc.spip.org/@sql_in_select sql_in_select}.
     900
    827901 * @link    http://doc.spip.org/@spip_mysql_free
    828902 * @param   mysqli_result   $r
     
    874948
    875949/**
    876  * insère une nouvelle ligne dans une table existante.
     950 * Insère une nouvelle ligne dans une table existante.
    877951 *
    878952 * @link    http://doc.spip.org/@spip_mysql_insertq
     
    899973
    900974/**
    901  * insère plusieures lignes dans une table existante.
     975 * Insère plusieures lignes dans une table existante.
    902976 *
    903977 * @link    http://doc.spip.org/@spip_mysql_insertq_multi
     
    9911065
    9921066/**
    993  * Suppression d'une ligne d'une table existente.
    994  *
     1067 * Supprime une ligne d'une table existente.
     1068 *
     1069 * <b>Exemple</b> :<br>
     1070 * Supprimer la liaison entre des rubriques et un mot donné :
     1071 * <code>
     1072 * sql_delete("spip_mots_rubriques", "id_mot=$id_mot");
     1073 * </code>
    9951074 * @link    http://doc.spip.org/@spip_mysql_delete
    9961075 * @param   string         $table      La table
     
    10561135
    10571136/**
    1058  * Construit une expression pour extraire un champ multi dans une requête
     1137 * Construit une expression pour extraire un champ multi dans une requête.
    10591138 *
    10601139 * @link    http://doc.spip.org/@spip_mysql_multi
     
    10931172
    10941173/**
    1095  * Contruire une chaîne permettant d'utiliser un code hexadécimal dans une requête
     1174 * Contruire une chaîne permettant d'utiliser un code hexadécimal dans une requête.
    10961175 *
    10971176 * @link    http://doc.spip.org/@spip_mysql_hex
     
    11051184
    11061185/**
    1107  * Echappe une chaine pour la rendre utilisable par MySQL
     1186 * Echappe une chaine pour la rendre utilisable par MySQL.
    11081187 *
    11091188 * @param   mixed   $v      valeur à traiter
     
    11171196
    11181197/**
    1119  * Préparer un élément pour qu'il puisse être utilisé dans les requêtes plus tard
     1198 * Préparer un élément pour qu'il puisse être utilisé dans les requêtes plus tard.
    11201199 *
    11211200 * @link http://doc.spip.org/@_q
     
    11331212
    11341213/**
    1135  * Calcul de date
     1214 * Calcul de date.
    11361215 *
    11371216 * @param   string   $champ
     
    11561235
    11571236/**
    1158  * IN (...) est limité à 255 elements, d'où cette fonction assistante
     1237 * IN (...) est limité à 255 elements, d'où cette fonction assistante.
    11591238 *
    11601239 * @link    http://doc.spip.org/@spip_mysql_in
     
    11851264
    11861265/**
    1187  * Echappe une chaine pour l'utiliser dans une requête MySQL
     1266 * Echappe une chaine pour l'utiliser dans une requête MySQL.
    11881267 *
    11891268 * @link    http://doc.spip.org/@spip_mysql_cite
Note: See TracChangeset for help on using the changeset viewer.