create temporary table et update

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : create temporary table et update

Re: create temporary table et update

par Antjac » 29 janv. 2010, 11:00

C'est très simple,
La partie
UPDATE tmp SET login=(
SELECT * FROM login
WHERE pass="1234"
est une hérésie.

Essaye plutot
UPDATE tmp SET login=(
SELECT login FROM login
WHERE pass="1234"
mais bon, c'est foireux comme système, suffit qu'il y ai deux utilisateurs ayant le même mot de passe pour faire planter ta requête.

En effet, quand tu fais une affectation avec une sous requête tu dois renvoyer qu'un seul résultat et une seule colonne.

Re: create temporary table et update

par Cypher_PHP » 21 janv. 2010, 11:11

coucou?

Il y a une solution?
Merci

create temporary table et update

par Cypher_PHP » 20 janv. 2010, 13:56

Bonjour

J'ai un problème avec la requête sql. je voulais mettre à jour le champ manquant "login" de la même table à partir d'un champ "pass".
Je vous remercie beaucoup de vos réponses.
exemple:

DROP TABLE IF EXISTS `tmp`;
CREATE TABLE IF NOT EXISTS `tmp` (
  `login` varchar(50) DEFAULT NULL,
  `pass` varchar(50) DEFAULT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

UPDATE tmp SET login=(
SELECT * FROM login
WHERE pass="1234"
)

Le message affiche :
#1241 - Operand should contain 1 column(s)
Résultat
| login | pass|
| cyphos | 1234|
| dentre | htr|
| (vide)| 1234|
Info:
J'utilise EasyPhp 5.3.