Bonjour
Je n'arrive pas à repérer une chaîne «mixte » dans ma BD mysql5.
Ex:
C'est deux requête passent sans problème.
SELECT * FROM `users` WHERE u_pswd = 'pvkrs';
SELECT * FROM `users` WHERE u_pswd LIKE 'pvkrs';
Mais elles trouvent rien dès là présence des chiffres.
SELECT * FROM `users` WHERE u_pswd = '6pvkrs';
SELECT * FROM `users` WHERE u_pswd LIKE '6pvkrs';
Je les ai testées en sur deux machines différente. Toutes les deux MySQL: 5.0.27, phpMyAdmin – 2.9.1.1
J'ai essayé u_pswd en text et en varchar aussi. Ca cause des mêmes problème dans tous les deux cas.
S'agit il d'un problème de syntaxe (moi) ou un bug (système)
Merci pour l'aide.
# C'est moi ou ?
Posté par By ZeB . Évalué à 1.
Lors de mes cours SQL l'instructeur m'a appris que pour une condition LIKE, il fallait mettre un %
-> SELECT * FROM `users` WHERE u_pswd LIKE '6pvkrs%'
-> SELECT * FROM `users` WHERE u_pswd LIKE '%6pvkrs'
Je ne suis pas sur qu'il s'agisse d'un bug ... aurais-tu une trace d'erreur éventuelle ? Ca pourrait être utile pour débugger ;-)
[^] # Re: C'est moi ou ?
Posté par lamachine_fr . Évalué à 1.
Ca plante qm
SELECT * FROM `users` WHERE u_pswd LIKE '6pvkrs%'
SELECT * FROM `users` WHERE u_pswd LIKE '%6pvkrs'
[^] # Re: C'est moi ou ?
Posté par dood . Évalué à 1.
Ce qui n'est pas très clair pour moi, c'est ce que tu as dans la base comme données dans u_pswd... ça permettrait de comprendre ce qui ne marche pas !
Guilhelm
[^] # Re: C'est moi ou ?
Posté par lamachine_fr . Évalué à 1.
Je pense que ça déconne dans ma procédure stocké ça tourne quand j'ajoute manuellement mais ça déconne dès que j'utilise « stor proc ».
CREATE DEFINER=`root`@`localhost` PROCEDURE `add_user_csv`(user TEXT,psd TEXT, mdp TEXT, gName TEXT, name TEXT)
BEGIN
DECLARE user_n TEXT;DECLARE user_p TEXT; SET user_n = 'existpas';SET user_p = 'existpas';
IF EXISTS(SELECT u_pseudo FROM users WHERE u_pseudo = psd LIMIT 1)
THEN
SET user_p = 'exist';
END IF;
IF EXISTS(SELECT u_gname, u_name FROM users WHERE u_gname = gName AND u_name = name LIMIT 1)
THEN
SET user_n = 'exist';
END IF;
IF user_n != 'exist' AND user_p != 'exist'
THEN
INSERT INTO `users`(`u_status` , `u_pseudo` , `u_pswd` , `u_gname`, `u_name`) VALUES ( user, psd, mdp, gName, name);
END IF;
END
C'est bête parce que les données sont en place les seule bug est ce lui que je viens d'évoquer dans le message précédent.
[^] # Re: C'est moi ou ?
Posté par lamachine_fr . Évalué à 1.
Ca fonctionne si j'utilise
SELECT * FROM `users` WHERE u_pswd LIKE '%mdp%';
ou
SELECT * FROM `users` WHERE u_pseudo LIKE '%user_name%';
Mais ça plante quand je concatène les deux
SELECT * FROM `users` WHERE u_pswd LIKE '%rbn3m%' AND u_pseudo LIKE '%LEGRANDM %';
[^] # Re: C'est moi ou ?
Posté par lamachine_fr . Évalué à 1.
"SELECT u_id,u_pseudo,u_pswd,u_status,u_name,u_gname FROM `users` WHERE u_pswd LIKE '%".$pswd."%' && u_pseudo LIKE '%".$psd."%'";
[^] # Re: C'est moi ou ?
Posté par lamachine_fr . Évalué à 2.
-> SELECT * FROM `users` WHERE u_pswd LIKE '6pvkrs%' plantait
-> SELECT * FROM `users` WHERE u_pswd LIKE '%6pvkrs' plantait
finalement c'était SELECT * FROM `users` WHERE u_pswd LIKE '%6pvkrs%'
Ce qui donne
"SELECT u_id,u_pseudo,u_pswd,u_status,u_name,u_gname FROM `users` WHERE u_pswd LIKE '%".$pswd."%' && u_pseudo LIKE '%".$psd."%'";
Merci pour l'aide
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.