Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di stan83
    Registrato dal
    May 2003
    Messaggi
    106

    INSERT queries e subquery SELECT

    Salve,
    vi prego ho bisogno di un aiuto velocissimo.
    DBMS: MySQL.

    Ammesso che la seguente query:

    SELECT username FROM clients LIMIT 1

    produce il risultato: "clientn1"

    Come mai utilizzandola come subquery nella seguente INSERT non funziona?

    INSERT INTO UTENTI (nome, cognome, email,username,password) VALUES ('' + (SELECT username FROM clients LIMIT 1)+ '','cognome','email','username','password')

    Nel campo nome mette il valore null (zero, "0")... ma non "clientn1".

    Credo che l'errore risieda nella modalità di concatenare la subquery con il segno +...
    Vi prego è urgentissimo. Grazie.
    Mai fare oggi quello che puoi fare domani.

  2. #2
    Utente di HTML.it L'avatar di stan83
    Registrato dal
    May 2003
    Messaggi
    106
    Nessuno nessuno?
    Mai fare oggi quello che puoi fare domani.

  3. #3
    che ricordo io non è possibile concatenare le query.

  4. #4
    Mhm per poter fare subquery devi avere innanzitutto la versione di mysql superiore alla 4.1

    Poi se non ricordo male ci sono limitazioni sulle subquery cioè non puoi Imodificare una tabella e selezionare dalla stessa tabella nella subquery

    http://dev.mysql.com/doc/refman/5.0/...trictions.html

    E cmq non capisco l'uso del simbolo +

  5. #5
    Utente di HTML.it L'avatar di stan83
    Registrato dal
    May 2003
    Messaggi
    106
    Ciao!
    Sapevo che ci fossero le limitazioni di cui mi parli, infatti io nella subquery ho usato una tabella diversa da quella che sto modificando nella query INSERT. Inoltre possiedo l'ultima versione di MySQL.

    In che senso non capisci l'utilizzo del segno +? E' necessario nel mio caso. Ti spiego meglio. Io sto facendo una tesi su SQL Injection, quindi quel parametro viene da un form ed è esattamente:

    $ParamForm= ' + (SELECT username FROM clients LIMIT 1)+ '

    nella query poi si ottiene:

    INSERT ecc.ecc. VALUES ('$ParamForm','$Param2')

    e la query risultante diventa:

    INSERT ecc.ecc. VALUES ('' + (SELECT username FROM clients LIMIT 1)+ '','$Param2')

    Quindi controllando le informazioni di registrazione l'utente può in realtà leggere le informazioni di altre tabelle.

    Solo che mi mette un valore nullo invece di queste informazioni
    Mai fare oggi quello che puoi fare domani.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.