Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654

    Campo id progressivo non accetta valore nell'inserimento

    La mia ditta ha appena cambiato server ed è passata da PHP4 a PHP5.
    In locale la query d'inserimento funziona perfettamente e anche nel server vecchio, ma nel nuovo server dà il seguente errore:

    bad query: "insert into banner (idbanner, nome, descrizione, img, link, posizione, dataam, useram ) values ('', 'Città del vino2', '', '/public/lonigo/UserFiles/Image/banner/cdv.gif', 'http://www.cittadelvino.it/', '1', '1197846000', 'rex')" Incorrect integer value: '' for column 'idbanner' at row 1

    Suppongo sia dovuto a una nuova sintassi del PHP5. L'idbanner è un autoincrement, quindi in teoria lasciando il valore vuoto dovrebbe prenderlo comunque e incrementarsi da solo; qui invece vuole proprio un valore numerico... come posso risolverlo?


    Edit: mi sono accorto che dà lo stesso errore per qualsiasi campo numerico che sia lasciato vuoto... spero di non dover cambiare tutte le query

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2002
    Messaggi
    240

    id autoincrement?

    se l'id della tabella è autoincrement non lo devi mettere nella query:

    insert into banner ( nome, descrizione, img, link, posizione, dataam, useram ) values ( 'Città del vino2', '', '/public/lonigo/UserFiles/Image/banner/cdv.gif', 'http://www.cittadelvino.it/', '1', '1197846000', 'rex')

  3. #3
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: Campo id progressivo non accetta valore nell'inserimento

    Originariamente inviato da Horus-Ra
    La mia ditta ha appena cambiato server ed è passata da PHP4 a PHP5.
    In locale la query d'inserimento funziona perfettamente e anche nel server vecchio, ma nel nuovo server dà il seguente errore:

    bad query: "insert into banner (idbanner, nome, descrizione, img, link, posizione, dataam, useram ) values ('', 'Città del vino2', '', '/public/lonigo/UserFiles/Image/banner/cdv.gif', 'http://www.cittadelvino.it/', '1', '1197846000', 'rex')" Incorrect integer value: '' for column 'idbanner' at row 1

    Suppongo sia dovuto a una nuova sintassi del PHP5. L'idbanner è un autoincrement, quindi in teoria lasciando il valore vuoto dovrebbe prenderlo comunque e incrementarsi da solo; qui invece vuole proprio un valore numerico... come posso risolverlo?


    Edit: mi sono accorto che dà lo stesso errore per qualsiasi campo numerico che sia lasciato vuoto... spero di non dover cambiare tutte le query
    bhe in realtà non stai assegnando un campo vuoto, ma una stringa vuota.

    Perchè lo dichiari esplicitamente?

    Non puoi semplicemente omettere l'idbanner e il relativo valore dalla query?

    Stesso discorso vale per tutti i campi che vuoi lasciare vuoti, l'importante è che lato mysql tu abbia assegnato le regole adeguate per far si che il campo venga riempito con qualcosa di sensato.

    ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    654
    Per la chiave primaria autoincrement potrei fare come avete detto voi, cioè ometterlo in modo da non dargli "in pasto" valori strani.
    Il problema però sono gli altri campi numerici: passo un valore che non so a priori se sia vuoto o meno. Quindi, se il valore esiste (e dunque vede un numero) non mi dà problemi; se invece è vuoto la vede come stringa vuota e mi dà errore.

    Potrei fare un controllo con if per vedere se è vuota prima di fare la query, ma mi sembra un po' troppo macchinoso e comunque dovrei modificare un bel po' di query... il fatto è che con php4 non dava problemi e quindi abbiamo costruito tutte le query in questo modo.
    Vedete un'altra alternativa per velocizzare?

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.