Ho il seguente dubbio esistenziale:
è possibile inserire una query UPDATE come subquery di una query
SELECT?
Faccio un esempio:
SELECT tot FROM totdue WHERE asd IN (UPDATE tot SET x=y WHERE j=k) AND
i=u
Ovviamente questa sintassi è errata e mi restituisce errore, mi
serviva conoscere un altro
metodo, anche se privo di senso, l'importante è che venga eseguito
l'UPDATE.
Purtroppo non posso usare due query separate (mysql_query() di php).
Grazie in anticipo,
Alfio
Ciao,
qual'è il risultato che devi ottenere?
Emanuele Desideri.
--
Emanuele Desideri
Sto testando una piattaforma per SQL-Injection e devo effettuare una
query di tipo UPDATE.
>
> Sto testando una piattaforma per SQL-Injection e devo effettuare una
> query di tipo UPDATE.
Si va bene, ma vorrei capire qual'è il result set che ti aspetti di
ottenere scrivendo una update dentro una select.
--
Emanuele Desideri
Non ha importanza quale sia il result set, non mi interessa ottenere
dei dati.
Mi basta solo che l'UPDATE venga eseguito con successo, senza alcun
errore di sintassi.
In ogni caso utilizzando una subquery come condizione ipoteticamente
sempre vera,
non dovrebbe cambiare niente.
Se vuoi solo fare un Update usa la sintassi corretta per il comando di
update
UPDATE Tabella
SET Campo1 = :mioValore1, Campo2 = :mioValore2, CampoN = :mioValoreN
WHERE (condizioneDiUpdate)
Al limite se vuoi sapere quanti record sono stati aggiornati usa la
funzione mysql_affected_rows di php (mi pare che stai lavorando in php
vero?) che ti ritorna 0 se nessun record è stato aggiornato, -1 in caso
di errore sulla query.
Se invece ti serve altro, io non l'ho capito quindi dovrai avere la
pazienza di rispiegarmelo :D
un saluto
--
Emanuele Desideri
l'UPDATE viene eseguito se esegui un comando UPDATE.
la SELECT non puň funzionare perchč la clausola WHERE...IN si aspetta
un insieme di record, e la UPDATE non restituisce un insieme di record.
ciň che puoi fare č eventualmente il contrario
UPDATE tot SET x=y WHERE j IN ( SELECT k FROM totdue WHERE i=u)