sqlite_column <<< |
sqlite_create_aggregate | sqlite_create_function >>> |
7.97 SQLite 7 Index des fonctions Manuel PHP . Introduction . Installation . Contacts . Pré-requis . Types de ressources . Constantes prédéfinies . Configuration à l'exécution . sqlite_array_query . sqlite_busy_timeout . sqlite_changes . sqlite_close . sqlite_column ->sqlite_create_aggregate . sqlite_create_function . sqlite_current . sqlite_error_string . sqlite_escape_string . sqlite_fetch_array . sqlite_fetch_single . sqlite_fetch_string . sqlite_field_name . sqlite_has_more . sqlite_last_error . sqlite_last_insert_rowid . sqlite_libencoding . sqlite_libversion . sqlite_next . sqlite_num_fields . sqlite_num_rows . sqlite_open . sqlite_popen . sqlite_query . sqlite_rewind . sqlite_seek . sqlite_udf_decode_binary . sqlite_udf_encode_binary . sqlite_unbuffered_query |
7.97.13 sqlite_create_aggregate()Enregistre une UDF agregeante pour les requêtes SQLite[ Exemples avec sqlite_create_aggregate ] CVS uniquement bool sqlite_create_aggregate ( resource dbhandle , string function_name , mixed step_func , mixed finalize_func , int num_args )sqlite_create_aggregate est similaire à sqlite_create_function , car elle enregistre une fonction qui sera utilisée pour calculer un résultat agrégé sur plusieurs lignes d'une requête. La différence principale entre cette fonction et sqlite_create_function est que deux fonctions sont nécessaires pour gérer les agrégations : step_func est appelée pour chaque ligne du résultat. Votre fonction PHP doit accumuler le résultat, et le stocker dans le contexte d'agrégation. Une fois que toutes les lignes ont été appelées, finalize_func sera appelée, et elle doit alors lire les données dans ce contexte d'agrégation, et en retourner le résultat.
Dans cet exemple, nous créons une fonction d'agrégation qui va calculer la taille de la plus longue chaîne dans l'une des colonnes de la table. Pour chaque ligne, la fonction max_len_step est appelée, et reçoit le paramètre context . Le contexte est une autre variable PHP , et il peut contenir un tableau ou même un objet. Dans notre exemple, nous l'utilisons pour stocker la taille maximale de la colonne courante. Si string est plus grand que la valeur maximale que nous avons enregistré, nous modifions notre contexte en conséquence. Une fois que toutes les lignes ont été traitées, SQLite appelle la fonction max_len_finalize pour déterminer le résultat de l'agrégation. Nous pourrions alors effectuer plusieurs calculs en fonction des données que nous avons récolté dans context . Dans notre exemple simple, nous avons calculé le résultat au fur et à mesure de la progression de la requête, ce qui nous permet de n'avoir qu'à retourner la valeur de notre contexte.
Voir aussi sqlite_create_function , sqlite_udf_encode_binary et sqlite_udf_decode_binary . |
<< | sqlite_create_aggregate | >> |
sqlite_column | SQLite | sqlite_create_function |