sql_in() sur colonne de type varchar avec valeurs numériques en argument
Lors du cas suivant :
sql_in() sur colonne de type varchar avec des valeurs numériques dans l'array donné en argument : les valeurs retournée correspondent à un like '%argument numérique' a cause des cast automatique réalisés par la db.
Un exemple pour illustrer :
"select * from spip_auteurs where ".sql_in(nom, array(1,2,3));
retournera l'ensembles des auteurs ayant un nom commencant par 1 ou 2 ou 3.
Ce problème a été identifié via la gestion des URLs arbo ici :
https://git.spip.net/spip/urls_etendues/src/branch/master/urls/arbo.php#L767
patch proposé pour remplacer le sql_in() :
: 'url=' . sql_quote("$type/$url_segment", '', 'TEXT') . ' OR url=' . sql_quote($type, '', 'TEXT'),