Aller au contenu

Sujets conseillés

Posté (modifié)

Hello à tous !

 

je me bats depuis hier avec un truc qui me parait simple mais je ne comprends pas ce que je fais de mal.

 

Voilà, j'ai une variable $var avec des tirets et dans ma base de données mysql j'ai les mêmes valeurs mais sans tiret (avec un espace à la place). Donc je pensais faire pour récupérer les données de la BD :

 

SELECT var FROM bd WHERE REPLACE (var, '', '-')  = '$var'

 

Mais ça ne fonctionne pas, j'ai pas le droit de faire ce genre de manip ?

 

(Je précise que l'interclassement de ma BD est en utf8mb4_unicode_ci et que je me connecte à elle également en utf8mb4_unicode_ci avec un "mysqli_set_charset($con, "utf8mb4");")

Modifié par sandrinoo
Posté
Quelque-chose comme ça, peut-être 
SELECT bd 
SET 
    var = REPLACE(var,
        ' ',
        '-')
WHERE
    var = $var;

 

Posté

Merci Dan, non ça ne fonctionne pas mais ce n'est pas de ta faute. Ce n'est pas le REPLACE qui doit causer un souci.

 

J'ai découvert qu'il y a un problème en amont : je n'arrive pas à faire un select sur des champs de ma bd qui ont un espace ou un apostrophe.

Un simple WHERE var = 'L'hermine' ou 'le chat' ne fonctionne pas, d'où mon interrogation :

1/ Est-il conforme et sécure que dans ce champs de ma bd j'ai des espaces et des apostrophes (sans antislash par exemple) ?

2/ et si c'est conforme on fait comment avec un simple WHERE var= pour y accéder ?

 

Merci d'avance Dan,

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...