Rendre sensible à la casse fetch()

Fermé
dsfhe - 17 août 2011 à 13:35
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 - 17 août 2011 à 22:41
Bonjour,

Dans ce code :
$req->closeCursor();
$reponse = $bdd->query('SELECT * FROM table WHERE toto = 'a'');
if($donnees = $reponse->fetch()) {
	echo $donnees['id'];
}
$reponse->closeCursor();


Que ce soit en requête : SELECT * FROM table WHERE toto = 'a' OU SELECT * FROM table WHERE toto = 'A'
J'obtiens tout le temps la même chose, comment rendre sensible à la casse ?

Merci d'avance.

2 réponses

avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
17 août 2011 à 13:52
Salut,

Essaie avec ceci :
SELECT * FROM table WHERE toto = 'a' COLLATE latin1_bin
(ou utf8_bin ou autre selon l'interclassement que tu utilises).
0
Merci, à la place de le mettre latin1_bin dans la requête SQL, je directement modifié l'interclassement dans phpMyAdmin et j'ai mis latin1_bin.

Mais latin1_bin çz correspond à quoi ? Quels caractères sont acceptés ?
Car dans ma table, il y a des URL (tout les caractères des URL) et des id composés de chiffres et lettres avec minuscules et majuscules.
0
Je viens de me rendre compte qu'avec latin1_bin dans le champ des URL il y a ça et non l'URL : [BLOB - 86o]
0
Je ne sais pas quel collation prendre pour un minimiseur d'URL. Pour enregistré des URL et des ID sensible à la casse et et des chiffres.
0
Voici ma table actuel :
CREATE TABLE 'MinimiseurURL' (
'id' INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
'uniqid' VARCHAR( 13 ) NOT NULL ,
'url' TEXT NOT NULL
) ENGINE = MYISAM ;


id : id autoincrementable
uniqid : id en base 62
url : URL à minimiser
0
avion-f16 Messages postés 19244 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 17 avril 2024 4 496
17 août 2011 à 18:13
latin1_bin correspond à l'ISO-8859-1, le jeu de caractère souvent uilisé en français.
Contrairement à latin1_general_ci (case insensitive), il est sensible à la casse.

Ton problème me paraît étrange, surtout qu'en effectuant une recherche sur Google avec « "BLOB - 86o" » (avec les guillemets pour l'expression exacte), on obtient un seul résultat : ce sujet.
0
Le 86o change en fonction de la taille de l'URL.
Je pense utiliser le latin1_general_cs, pour les URL il est correcte ?
0