Visualizzazione dei risultati da 1 a 9 su 9

Discussione: errore query mysql

  1. #1

    errore query mysql

    Sapete dirmi di che errore si tratta questo che ho citato qua sotto e come fare per correggerlo?


    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 '/IN_ac , F0_ac , F1_ac , F2_ac , F3_ac , F4_ac , base , indice_ve , SC/IN_ve , F' at line 19

  2. #2
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    Ciao, forse è meglio che posti la tua query.

  3. #3
    partiamo col dire che la query è creata da una funzione a cui io passo in vari dati da inserire
    questa è la funzione:
    //funzione per l'inserimento dei dati in tabella
    public function inserisci($t,$v,$r = null)
    {
    if(isset($this->attiva))
    {
    $istruzione = 'INSERT INTO '.$t;
    if($r != null)
    {
    $istruzione .= ' ('.$r.')';
    }

    for($i = 0; $i < count($v); $i++)
    {
    if(is_string($v[$i]))
    $v[$i] = '"'.$v[$i].'"';
    }
    $v = implode(',',$v);
    $istruzione .= ' VALUES ('.$v.')';

    $query = mysql_query($istruzione) or die (mysql_error());

    }else{
    return false;
    }
    }

    questa invece è la parte di chiamata della funzione elencata in precedenza

    //inserisco i dati prelevati dal form del record che poi passo alla funzione
    $v[0]=&$_POST["POD"];
    $v[1]=&$_POST["IDanagrafe"];
    $v[2]=&$_POST["IDsede"];
    $v[3]=&$_POST["presa"];
    $v[4]=&$_POST["fornitore"];
    $v[5]=&$_POST["stato"];
    $v[6]=&$_POST["addetto"];
    $v[7]=&$_POST["dati_catasatali"];
    $v[8]=&$_POST["dec_cont"];
    $v[9]=&$_POST["fine_cont"];
    $v[10]=&$_POST["pot"];
    $v[11]=&$_POST["iva"];
    $v[12]=&$_POST["utf"];
    $v[13]=&$_POST["licenza_utf"];
    $v[14]=&$_POST["contat_vendita"];
    $v[15]=&$_POST["tensione"];
    $v[16]=&$_POST["en_verde"];
    $v[17]=&$_POST["indice_ac"];
    $v[18]=&$_POST["SC/IN_ac"];
    $v[19]=&$_POST["F0_ac"];
    $v[20]=&$_POST["F1_ac"];
    $v[21]=&$_POST["F2_ac"];
    $v[22]=&$_POST["F3_ac"];
    $v[23]=&$_POST["F4_ac"];
    $v[24]=&$_POST["base"];
    $v[25]=&$_POST["indice_ve"];
    $v[26]=&$_POST["SC/in_ve"];
    $v[27]=&$_POST["F0/F1_ve"];
    $v[28]=&$_POST["F2_ve"];
    $v[29]=&$_POST["F3_ve"];
    $v[30]=&$_POST["F4_ve"];
    $v[31]=&$_POST["bonus"];
    $v[32]=&$_POST["F0/F1_anno"];
    $v[33]=&$_POST["F2_anno"];
    $v[34]=&$_POST["F3_anno"];
    $v[35]=&$_POST["F4_anno"];
    $v[36]=&$_POST["tot_anno"];
    $v[37]=&$_POST["F0/F1_mese"];
    $v[38]=&$_POST["F2_mese"];
    $v[39]=&$_POST["F3_mese"];
    $v[40]=&$_POST["F4_mese"];
    $v[41]=&$_POST["tot_mese"];



    // definizione delle variabili da passare alla funzione per l'inserimento dei dati
    $t = "catasto"; // nome della tabella
    // campi da popolare
    $r = "POD ,
    IDanagrafe ,
    IDsede ,
    presa ,
    fornitore ,
    stato ,
    addetto ,
    dati_catastali ,
    dec_cont ,
    fine_cont ,
    pot ,
    iva ,
    UTF ,
    licenza_utf ,
    contat_vendita ,
    tensione ,
    en_verde ,
    indice_ac ,
    SC/IN_ac ,
    F0_ac ,
    F1_ac ,
    F2_ac ,
    F3_ac ,
    F4_ac ,
    base ,
    indice_ve ,
    SC/IN_ve ,
    F0_ve ,
    F1_ve ,
    F2_ve ,
    F3_ve ,
    F4_ve ,
    bonus ,
    F0/F1_anno ,
    F2_anno ,
    F3_anno ,
    F4_anno ,
    tot_anno ,
    F0/F1_mese ,
    F2_mese ,
    F3_mese ,
    F4_mese ,
    tot_mese";


    // chiamata alla funzione per l'inserimento dei dati
    $data->inserisci($t,$v,$r);

  4. #4
    ok, ma per i poveracci come me, quale sarebbe la query?

  5. #5
    la query viene "assemblata" dalla funzione..

  6. #6
    questo lo si era intuito. ma in qualche punto la esegui! quindi fattela stampare a video un attimo prima di eseguirla, la copi e la incolli qui, grassie

  7. #7
    Utente bannato
    Registrato dal
    Nov 2007
    residenza
    Acicatena (Catania)
    Messaggi
    1,854
    E allora ci sarà qualche problema nella realizzazione della query se è quella che hai postato all'inizio.

  8. #8
    SC/IN_ac ,

    viene scambiato per SC diviso IN_ac e da qui l'errore.

    va messo tra backtits `SC/IN_ac` ed ovviamente anche i successivi. Sarebbe pero' opportuno usare un carattere "piu' meglio" di un / che significa diviso nelle costanti come nomi di campo o tabelle.

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

  9. #9
    anche F0/F1_anno e F0/F1_mese ... recidivo

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.