Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Problema con QUery

  1. #1

    Problema con QUery

    Buon giorno a tutti,
    è dalle 15,30 che cerco di capire il problema che ha la Query seguente:
    codice:
    INSERT INTO 'co_collaudo' ( 'titolo' , 'operatore' , 'ordine' , 'articolo' , 'serial' , 'banco' , 'motore' , 'alimentazione' , 'tipologia' , 'rapporto_riduzione' , 'note' , 'versione' , 'condesnatore' , 'data' , 'ora' , 'esito' ) VALUES ('Ulixes 500 24v','Paolo Bianchi','068561','BATTENTE','0685610001','Banco per Traslativi/Rotativi LENTO','FORNITORE','24','ottico','0','asdasd','Ulixes 500',0,'2012-11-28','',0);
    Sono tutti campi VarChar, tranne Condensatore ed Esito, che sono rispettivamente float e Int.

    E l'errore che mi da phpMyAdmin quando cerco di farla girare è questo:
    codice:
    #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''co_collaudo' VALUES ('Ulixes 500 24v','Paolo Albiero','068561','ULIXXX','068561' at line 1
    Cercando sul portale di MySql mi dice che è un problema sulle virgole, ma le ho provate tutte, e adesso non trovo più l'errore.

    Grazie
    Credo nelle idee che diventano azioni. [E. Pound]
    Le cose perdonabili sono, in verità, pochissime. [Y. Mishima]

  2. #2
    Ciao,
    ho verificato l'insert e le virgole e apici sono ok. Solitamente quando un sql va in errore, il cursore si posiziona sulla porzione di codice sql errata.
    In questo caso l'unica cosa che mi salta all'occhio è che hai scritto 'condesnatore' anzichè 'condensatore'

    In alternativa, se non è questa la soluzione, dovresti provare a fare l'insert eliminando man mano alcuni campi. Es:

    INSERT INTO co_collaudo
    ( titolo , operatore , ordine , articolo , serial , banco , motore , alimentazione , tipologia , rapporto_riduzione , note , versione , condensatore )
    VALUES ('Ulixes 500 24v','Paolo Bianchi','068561','BATTENTE','0685610001','Banco per Traslativi/Rotativi LENTO','FORNITORE','24','ottico','0','asdasd','Uli xes 500',0);

    ho eliminato gli ultimi tre campi

    Ciao
    Mik

  3. #3
    Grazie mille per la risposta, le ho provate tutte, ma non mi funzionava, allora ho fatto un inserimento da phpMyAdmin ed ho copiato la query che mi dava.
    In php poi ho sostituito la query, e al posto di fare:
    codice:
    INSERT INTO co_collaudo VALUES ('".$_POST['titolo']."',etc etc);
    ho fatto
    codice:
    INSERT INTO co_collaudo VALUES ('$_POST[titolo]', etc etc);
    Togliendo tutti gli apici di PHP, e così ha funzionato.

    Grazie comunque
    Credo nelle idee che diventano azioni. [E. Pound]
    Le cose perdonabili sono, in verità, pochissime. [Y. Mishima]

  4. #4
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Non conosco a sufficienza MySql quindi certamente scrivo delle sciocchezza Ma:


    Campo 'alimentazione' hai scritto '24' ---> è formato testo ?
    Campo 'rapporto_riduzione' hai scritto '0' ---> è formato testo ?

    Campo 'condesnatore' hai scritto 0 ---> è formato numerico?
    Campo 'esito' hai scritto 0 ---> è formato numerico?

    Campo 'ora' hai scritto '' ---> quel campo è a compilazione obbligatoria ?
    e soprattutto in MySql l'ora puo essere una stringa di lunghezza zero ???


    Facci sapere


    Se hai tolto tutti gli apici cosa hai messo al posto dei 2 apici vuoti dell'ora ??
    Le query non funzionano per casualità



    .

  5. #5
    Campo 'alimentazione' hai scritto '24' ---> è formato testo ?
    Campo 'rapporto_riduzione' hai scritto '0' ---> è formato testo ?

    Campo 'condesnatore' hai scritto 0 ---> è formato numerico?
    Campo 'esito' hai scritto 0 ---> è formato numerico?

    Campo 'ora' hai scritto '' ---> quel campo è a compilazione obbligatoria ?
    e soprattutto in MySql l'ora puo essere una stringa di lunghezza zero ???
    Allora,
    il campo 'alimentazione' è un campo SET che ho impostato '12','24','230' e lo vede come stringa.

    il campo 'rapporto_riduzione' è un campo che non viene mai compilato, l'ho messo solo per lungimiranza, ad ogni modo l'ho messo come varchar dato che spesso i rapporti sono scritti 1:2, 1/3 etc.

    il campo 'ora' invece è a compilazione obbligatoria in quanto è settato a NOT NULL sul DB, dal PHP, infatti, passo sempre un valore per l'ora dato che mi serve per confrontarlo con un valore estrapolato da un file HTML, questo mi permette di aver la certezza matematica che il campo 'ora' venga sempre compilato. qui non è compilato perchè si tratta di una delle 1000 query che facevo per testare il DB ma soprattuto la query.
    Può essere lunghezza 0, ma provvede lui, mySql, a mettere il valore passato in formato TIME, quindi ti troverai 00:00:00

    Spero di non aver sparato troppe stupidaggini, dato che non sono un manico neanche io.
    Ma soprattutto spero di essere stato abbastanza chiaro.

    Grazie
    Credo nelle idee che diventano azioni. [E. Pound]
    Le cose perdonabili sono, in verità, pochissime. [Y. Mishima]

  6. #6
    Utente di HTML.it L'avatar di nman
    Registrato dal
    Jan 2011
    residenza
    Milano
    Messaggi
    1,333
    Originariamente inviato da ciro1919
    ......
    il campo 'ora' invece è a compilazione obbligatoria in quanto è settato a NOT NULL sul DB,
    ........
    Può essere lunghezza 0, ma provvede lui, mySql, a mettere il valore passato in formato TIME, quindi ti troverai 00:00:00
    .......
    Non uso MySql per testare quello che sto scrivendo.

    _______________________________________________

    Ma per analogia con altri DB se tu a un campo TIME
    ( Puo anche essere DATA, NUMERICO, DATETIME )
    passi con una INSERTun valore ""


    NON significa che non passi Nulla
    Ma stai passando valore formato Stringa ( anche se a lunghezza 0 )
    Pertanto su altri DB ricevi un errore

    _______________________________________________


    Secondo me se NON vuoi passare dei valori al campo 'ora'
    devi estirparlo radicalmente dalla INSERT
    ( intendo sia nell'elenco campi che nell'elenco valori )

    Dopo MySql potra metterci il suo valore di default 00:00:00




    .

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.