Rendre sensible à la casse fetch()

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

  1. 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
    1. 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
      1. 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
      2. 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
      3. 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
      4. 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
      5. 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