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.
C'est très simple,
La partie
[sql]UPDATE tmp SET login=(
SELECT * FROM login
WHERE pass="1234"[/sql]
est une hérésie.
Essaye plutot
[sql]UPDATE tmp SET login=(
SELECT login FROM login
WHERE pass="1234"[/sql]
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.