Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 35
  1. #1
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107

    [Mysql] Chiave primaria in MD5?

    Salve a tutti!

    E' possibile impostare una primary key in MD5 che venga inserita in automatico ad ogni inserimento?

    una specie di auto-increment... ma in md5
    Guybrush Threepwood

  2. #2
    MySQL dovrebbe inserire automaticamente l'MD5 di cosa?

  3. #3
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    speravo di si

    mi spiego meglio... devo fare una tabella con delle registrazioni.
    mi occorreva che l'id della registrazione fosse criptato, così da poterlo passare come GET senza problemi.

    In pratica mi serve un campo che, all'inserimento di una nuova riga, venga auto-generato (tipo l'autoincrement, x intenderci)... ma in md5
    Guybrush Threepwood

  4. #4

  5. #5
    Ciao,
    mysql (versione stabile) non supporta i triggers ma a partire da mysql 4.1 puoi usare ON DUPICATE KEY per inserire automaticamente il risultato di un'espressione o di una funzione
    per favore NIENTE PVT TECNICI da sconosciuti

  6. #6
    non conviene assolutamente fare l'md5 di time perché se per caso ci sono due inserimenti nello stesso secondo salta tutto

    di solito faccio (per sicurezza)
    md5(uniqid(microtime(), true));

    ma va anche bene
    md5(microtime());

    anche se è nettamente meglio il sistema di su
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it L'avatar di Threepwood
    Registrato dal
    Feb 2003
    Messaggi
    2,107
    Originariamente inviato da daniele_dll
    non conviene assolutamente fare l'md5 di time perché se per caso ci sono due inserimenti nello stesso secondo salta tutto

    di solito faccio (per sicurezza)
    md5(uniqid(microtime(), true));

    ma va anche bene
    md5(microtime());

    anche se è nettamente meglio il sistema di su
    Questo è da mettere nel campo "default" di mysql, quindi?
    Guybrush Threepwood

  8. #8
    Originariamente inviato da Threepwood
    Questo è da mettere nel campo "default" di mysql, quindi?
    assolutamente no

    nel campo di default "forse" puoi mettere

    MD5(UNIX_TIMESTAMP())

    ma comunque viene generato un MD5 per ogni secondo
    non so se MD5 ha la possibilità di generare stringhe casuali uniche

    cmq dovresti farle generare a php e non a mysql...e lo fai quando esegui l'insert
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  9. #9
    una chiave primaria ha lo scopo di indicizzare col minimo costo una tabella, se al posto di un int metti un md5 togli questa prerogativa. inoltre mentre un auto_increment ti cresce sempre ed è quindi automaticamente unico, un md5 non ti da questa certezza.
    usa due campi diversi per i due diversi scopi! divide et impera
    <?php echo ' Emiliano Gabrielli (aka AlberT) ',"\n",
    ' socio fondatore e membro del direttivo del GrUSP ',"\n",
    ' AlberT_at_SuperAlberT_it - www.SuperAlberT.it ',"\n",
    ' IRC: #php,#AES azzurra.com ',"\n",'ICQ: 158591185'; ?>

  10. #10
    non puoi generare il valore facendo

    md5(concatenodeicampidelform)


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.