Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346

    [PHP 4.4 + MySQL 5.0/5.2] Problema INSERT con un autoincrement

    In seguito ad una reinstallazione di un webserver con Apache 2, PHP 4.4 e MySQL 5.0/5.2 (provati entrambi) e dopo aver verificato il funzionamento su progetti già funzionanti prima della nuova installazione, mi sono accorto che in realtà funzionano tutte le query sui vari database (SELECT, DELETE, UPDATE) tranne quelle di INSERT in cui la chiave primaria della tabella viene lasciata vuota in quanto configurata come autoincrement. Se la chiave primaria viene forzata manualmente invece l'inserimento va a buon fine. Inoltre sono state effettuate anche prove su database nuovi e non sui vecchi dump, per escludere errori nei backup. Da cosa deriva questo problema ? Come è possibile risolverlo ? Grazie e buon anno !

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    up :master:

  3. #3
    metti NULL come valore....

    insert into table (id, pippo) values (NULL, '$pippo')

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    domani appena arrivo in ufficio lo provo, comunque prima di uscire questa sera ho provato reinstallando una versione diversa di mysql (la 4.3 se non erro) e quell'errore non me lo ha + dato.
    Domani ti faccio sapere.

    Grazie

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    eccoci qua...
    come avevo detto ho provato la soluzione da te postata.
    La query ha funzionato, e fatte alcune verifiche, ho notato che la stessa soluzione funziona anche per il 4 e versioni precedenti... quindi ora mi devo rimboccare le maniche e corregegre tutto il codice vecchio!!!!!

    Grazie mille per l'info!

    P.S. Una domanda che mi è venuta in mente subito dopo aver postato...

    che differenza cè tra queste due sintassi??

    --> insert into table (id, pippo) values (NULL, '$pippo')

    --> insert into table values (NULL, '$pippo')

    Differenze tra le diverse versioni di mysql, differenza nel processare i dati... errori che vengono restituiti...

  6. #6
    la differenza tra le due query è che nella prima specifichi quali campi utilizzare, di conseguenza se hai inserito tutti i campi tra la prima e la seconda query non c'è nessuna differenza pratica

    puoi anche fare
    insert into table (pippo) values ('$pippo')

  7. #7
    Utente di HTML.it
    Registrato dal
    Jul 2006
    Messaggi
    346
    ah ok..., quindi se utilizzo la tipologia lunga, mi è possibile anche escludere il valore da assegnare alla chiave primaria che è autoincrement...e così funziona sia nel 5.2 che nelle versioni + vecchie!!

    basta apprendere prima il metodo corretto per effettuare l'insert e tutto questo non sarebbe accaduto!! (dover modificare tutti gli Insert dei vari pannelli di gestione dei siti)

    Grazie per le dritte!
    ciao

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.