Mise à jour d'un champ blob contenant texte
Résolu/Fermé
stidroubaix
Messages postés
6
Date d'inscription
jeudi 21 octobre 2010
Statut
Membre
Dernière intervention
12 septembre 2018
-
11 sept. 2018 à 10:50
stidroubaix Messages postés 6 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 12 septembre 2018 - 12 sept. 2018 à 14:09
stidroubaix Messages postés 6 Date d'inscription jeudi 21 octobre 2010 Statut Membre Dernière intervention 12 septembre 2018 - 12 sept. 2018 à 14:09
A voir également:
- Mise à jour d'un champ blob contenant texte
- Mise a jour chrome - Accueil - Applications & Logiciels
- Mise a jour windows 10 - Accueil - Mise à jour
- Mise a jour chromecast - Accueil - Guide TV et vidéo
- Mise a jour kindle - Guide
- Mise a jour windows 7 - Accueil - Mise à jour
1 réponse
jordane45
Messages postés
38314
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
24 novembre 2024
4 705
Modifié le 11 sept. 2018 à 11:07
Modifié le 11 sept. 2018 à 11:07
Bonjour,
Déjà, même si techniquement faisable de réaliser la requête INSERT comme tu le fais... ce n'est pas la meilleur façon.
On "nomme" les champs dans lesquels on veut insérer des données
De cette façon, les champs qui auraient des valeurs par défaut de renseigner ou qui autorisent le "NULL" n'ont pas à être spécifiés dans nos requêtes.
Ensuite, l'insertion ou la mise à jour de champ BLOB se fait de la même manière que pour les autres champs....
Par exemple
Prenons la table :
Insertion :
Mise à jour
Lecture
Déjà, même si techniquement faisable de réaliser la requête INSERT comme tu le fais... ce n'est pas la meilleur façon.
On "nomme" les champs dans lesquels on veut insérer des données
INSERT INTO matable ( champ1,champ2...) VALUES (val1, val2...)
De cette façon, les champs qui auraient des valeurs par défaut de renseigner ou qui autorisent le "NULL" n'ont pas à être spécifiés dans nos requêtes.
Ensuite, l'insertion ou la mise à jour de champ BLOB se fait de la même manière que pour les autres champs....
Par exemple
Prenons la table :
-- Export de la structure de table aaa CREATE TABLE IF NOT EXISTS `aaa` ( `id` int(11) NOT NULL AUTO_INCREMENT, `bb` blob, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Insertion :
INSERT INTO aaa (bb) VALUES ('TEST')
Mise à jour
UPDATE aaa SET bb = 'Ma nouvelle valeur' WHERE id=1
Lecture
SELECT CONVERT(bb, CHAR(32767)) AS blob_value FROM aaa;
11 sept. 2018 à 12:51
Merci pour votre réponse. J'en attendais une pour continuer d'étoffer.
Cette solution fonctionne mais sur le fond, pas sur l'application. Si pour un utilisateur, j'ai mon champ "pass" (de type "blob" donc) à vide parce que le mot de passe réellement à vide et que je mets à jour ce mot de passe par le biais d'un update classique en mettant un vrai mot de passe, lorsque je vais faire un select CONVERT(pass USING utf8) from passweb where login = 'LOGIN_UTIL', je vais bien voir le bon mot de passe apparaître.
Mon problème, c'est que l'applicatif continue de s'appuyer sur l'ancien mot de passe à vide et le nouveau mot de passe ne fonctionnera pas. Par contre, dans l'autre sens, si j'ai un mot de passe qui existe vraiment et je mets à vide par le biais d'un update, non seulement mon select classique va me renvoyer la valeur à vide mais en plus, c'est vraiment ce mot de passe à vide qui sera pris en compte.
Cordialement,
11 sept. 2018 à 13:24
Merci pour votre réponse. J'en attendais une pour continuer d'étoffer. </blovk>
Je n'en vois pas l'interet... autant donner toutes les informations immédiatement.... ça évite de perdre du temps à trouver des réponses qui, au final, ne seront pas pertinentes....
Ta question concernait l'update qui "ne fonctionnait pas" ... hors tu nous dis finalement que ça fonctionne... mais que ça pose des soucis avec l'autre application...
La seule réponse qu'on peut alors te donner.... c'est de savoir comment fonctionne le code de l'autre application. Sans cette donnée... impossible de te répondre.
A la limite, dans ton application, met un password à vide et regarde en BDD comment il est stocké
12 sept. 2018 à 14:09
On a effectué des tests. Le mot de passe est bien crypté. Quand on change le mot de passe via l'applicatif, il n'est pas possible de le sortir par le biais d'une requête. Par contre, quand je fais une mise à jour par le biais d'une requête, ça ne fonctionne pas.
On a récupéré une sauvegarde de la base de données avec la requête qui est passé au moment du changement de mot de passe via l'applicatif et on a récupéré le code crypté.
Il faut que je fasse ceci qui correspond au format de mon champs :
update passweb set pass = convert('|¢ËøÔ\0l+–t÷DT&¢r8\\XãúbjVUÌÇ-' using latin1) where login = 'login_user';