Vous consultez les articles taggés sql
Oct
30

Trier dans un ordre spécifique avec MySql

Il arrive parfois que l’on ai besoin de trier les résultats d’une requête SQL dans un ordre précis, qui ne soit ni croissant, ni décroissant.

Pour cela, il faut utiliser la fonction FIND_IN_SET() dans le order by.

Exemple

SELECT nom
FROM chaine
ORDER BY FIND_IN_SET(idChaine, '17,12,1,9,8,5')

Attention cependant aux performances, c’est une fonction qui peut être gourmande selon la taille de la table.

Il est aussi possible d’utiliser la fonction FIELD, vous trouverez un bon exemple sur ce site :

https://oncletom.io/2007/mysql-tri-personnalises-aleatoires/

Juil
28

Recommandations de sécurité Ez publish et PHP

Failles xss

Avec Ez Publish

Utiliser la fonction wash() sur les variables dans les templates, surtout sur les variables pouvant être modifiées par l’utilisateur (paramètres d’url, champs de formulaire, etc)

En PHP

La stratégie de protection principale contre les injections HTML est la même que pour toutes les injections. Il est recommandé d’implémenter une fonction de filtrage en entrée et une fonction d’encodage en HTML en sortie.

L’encodage en sortie peut être effectué par deux fonctions en PHP :

htmlspecialchars() remplace tous les caractères qui ont une signification spéciale en HTML par leur entité HTML. Cette fonction va cibler les caractères suivants :

  • &, le « et commercial », qui commence les séquences HTML (telles que &) ;
  • ‘, les guillemets simples, utilisés dans les attributs ;
  • , les guillemets doubles, utilisés dans les attributs ;
  • < et >, les signes « inférieur à » et « supérieur à », qui délimitent une balise.

htmlentities() est une version plus complète de htmlspecialchars(), elle remplace dans une chaîne tous les caractères possibles par leur séquence HTML. Il est possible de spécifier le masque et l’encodage à utiliser

<a href="http://www.php.net/htmlentities" target="blank">htmlentities</a>($str, ENT_QUOTES, 'UTF-8');
Nov
15

Limite de caractères de la fonction Group_concat Mysql

Author Appo    Category SQL     Tags , , , ,

Si vous utilisez la fonction Group_concat de mysql, il faut savoir que cette fonction a une limite de caractère par défaut (1024 pour mon cas). Ce qui est traître, c’est que mysql n’indique pas d’erreur et va tronquer le résultat retourné.

Pour contourner cette limite il suffit de lancer la requête suivante avant votre requête contenant le group_concat

SET [SESSION | GLOBAL] group_concat_max_len = nbre de caractères;

La valeur doit aussi certainement être modifiable dans un fichier de configuration de mysql.

Edito

Bienvenue sur Mémorandom.

Mémorandom est le blog de 2 développeurs web, Appo et Nico.

Vous y trouverez des informations sur différents domaines touchant de près ou de loin au développement web

Tutoriels Yii Framework

Nos derniers articles

Blogs Dev

Liens

Étiquettes