Jump to content

Replace SQL ?


sandrinoo
 Share

Recommended Posts

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");")

Edited by sandrinoo
Link to comment
Share on other sites

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

 

Link to comment
Share on other sites

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,

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...