Retour requete UPDATE via pdo
Résolu/Fermé
Utilisateur anonyme
-
Modifié par Spangenhelm le 10/02/2011 à 20:39
Utilisateur anonyme - 11 févr. 2011 à 18:43
Utilisateur anonyme - 11 févr. 2011 à 18:43
A voir également:
- Retour requete UPDATE via pdo
- Windows update 0x80070643 - Guide
- Windows update bloqué - Guide
- Retour à la ligne excel - Guide
- Raccourci clavier retour en arrière - Guide
- Asus live update - Télécharger - Utilitaires
4 réponses
.Zoro.
Messages postés
263
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
8 mai 2020
33
10 févr. 2011 à 19:26
10 févr. 2011 à 19:26
normalement
si tu fait un update
c'est que tu connais deja ton membre
dont pour ce qui est du login ou mot de passe
fait une requete select et compare les resultats
pareil pour savoir si le hash est pareil
si tu fait un update
c'est que tu connais deja ton membre
dont pour ce qui est du login ou mot de passe
fait une requete select et compare les resultats
pareil pour savoir si le hash est pareil
Utilisateur anonyme
10 févr. 2011 à 20:17
10 févr. 2011 à 20:17
Ok prenons un autre exemple:
Dans une requete INSERT, un champ login et un champ email ont tous les deux une contrainte d'unicité (via sgbd) et l'un ou l'autre peuvent planter la requete (login ou/et email deja utiliser )
La requete renvoie donc un code erreur pour les doublons, ici 23000 avec mysql mais rien ne dit de quel champ il s'agit voila mon probleme, donc impossible de dire a l'utilisateur: "pseudo deja pris" ou "email deja pris" puisque l'on ne sait pas lequel a renvoyé l'erreur ! Je souhaitais pouvoir etre plus precis qu'une simple phrase: "la requete a foirée" lol
Merci pour les reponses.
+++ Spangenhelm +++
Dans une requete INSERT, un champ login et un champ email ont tous les deux une contrainte d'unicité (via sgbd) et l'un ou l'autre peuvent planter la requete (login ou/et email deja utiliser )
La requete renvoie donc un code erreur pour les doublons, ici 23000 avec mysql mais rien ne dit de quel champ il s'agit voila mon probleme, donc impossible de dire a l'utilisateur: "pseudo deja pris" ou "email deja pris" puisque l'on ne sait pas lequel a renvoyé l'erreur ! Je souhaitais pouvoir etre plus precis qu'une simple phrase: "la requete a foirée" lol
Merci pour les reponses.
+++ Spangenhelm +++
.Zoro.
Messages postés
263
Date d'inscription
mardi 17 août 2010
Statut
Membre
Dernière intervention
8 mai 2020
33
10 févr. 2011 à 21:01
10 févr. 2011 à 21:01
pour ton exemple d'insert
voici ce que je ferais
ton utilisateur entre son login et son mail
avec ceci
on fait une requete contenant 2 sous-requetes
exemple :
$login = dupont;
$mdp = password;
$sql='
SELECT
(SELECT COUNT(login) FROM user WHERE login=?) AS nbLog
(SELECT COUNT(pass) FROM user WHERE pass=?) AS nbPass
FROM user';
$requete = $pdo -> prepare ($sql);
$requete->execute(array($login,$mdp));
$data = $requete -> fetch();
$i=0;
if($data[nbLog'] != 0)
{
echo 'desolé, ce pseudo est deja pris !';
$i++;
}
if($data['nbPass'] != 0)
{
echo 'desolé, ce mot de passe est deja pris !';
$i++;
}
if($i==0)
{
echo 'vos identifiants sont uniques.';
}
voici ce que je ferais
ton utilisateur entre son login et son mail
avec ceci
on fait une requete contenant 2 sous-requetes
exemple :
$login = dupont;
$mdp = password;
$sql='
SELECT
(SELECT COUNT(login) FROM user WHERE login=?) AS nbLog
(SELECT COUNT(pass) FROM user WHERE pass=?) AS nbPass
FROM user';
$requete = $pdo -> prepare ($sql);
$requete->execute(array($login,$mdp));
$data = $requete -> fetch();
$i=0;
if($data[nbLog'] != 0)
{
echo 'desolé, ce pseudo est deja pris !';
$i++;
}
if($data['nbPass'] != 0)
{
echo 'desolé, ce mot de passe est deja pris !';
$i++;
}
if($i==0)
{
echo 'vos identifiants sont uniques.';
}
Utilisateur anonyme
11 févr. 2011 à 18:43
11 févr. 2011 à 18:43
Merci Zoro, je pensais vraiment qu'il y avait plus simple snif...
A bientot sur CCM
+++ Spangenhelm +++
A bientot sur CCM
+++ Spangenhelm +++