Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [C] Problema connessione col DB

    Ho un problema con l'update di MYSQL su linguaggio C. Inizialmente scarico tutte le informazioni che mi interessano e il mio programma si mette a lavorare tranquillamente alla fine pero nell'ultimo pezzo di codice dove dopo aver fatto tutte le operazioni devo andare a salavare nel DB mi dice sempre error: 1064
    Vi posto il codice così potete meglio rendervi conto:

    int query_execute(char *db, char *query, MYSQL *sql){
    int cont_occorrenze=0;
    MYSQL_RES *res;
    MYSQL_ROW row;
    MYSQL_FIELD *f;
    unsigned int n=0, hj=0;
    char *other_query="update movimenti set ip_2='%s' where id_movimento=%d " ;
    char query_update[LEN_MAX_QUERY];
    memset(query_update, 0x00, LEN_MAX_QUERY);
    char *new_ip_2=NULL;
    new_ip_2=calloc(LEN_MAX_IP, 1);

    //in un altra funzione(precedente a questa) faccio partire la mysql_init e la mysql_real_connect

    if (mysql_select_db(sql, db) != 0) //si connette al db
    {
    printf("\nConnect db error\n");
    return EXIT_FAILURE;
    }

    if (mysql_real_query(sql, query, strlen(query) + 0x1) != 0)
    //fa la query "select id_movimenti, ip from Movimenti" e la esegue correttamente
    {
    printf("Query db error\n");
    return EXIT_FAILURE;
    }


    res = mysql_store_result(sql);

    n = mysql_num_fields(res);
    f = mysql_fetch_fields(res);

    while ((row=mysql_fetch_row(res))) {

    new_ip_2=ipWithoutDot(row[1]);

    cont_occorrenze = snprintf(query_update, LEN_MAX_QUERY, other_query, new_ip_2, atoi(row[0]));
    printf("%s",query_update);
    //le stampa correttamente a patto che nn ci sia la funzione successiva ke da un EXIT_FAILURE;


    //da Errore 1064 tramite la "hj=mysql_errno(sql)"
    //se nn ce questa istruzione tutto il programma funziona correttamente
    if (mysql_real_query(sql, query_update, (strlen(query_update))+1 != 0)) {
    hj=mysql_errno(sql);
    printf("\nQuery db error2: %d\n",hj);
    return EXIT_FAILURE;
    }
    }
    }
    Ho visto error 1064 ma nn credo sia qlcs che riguarda il codice da me fatto finora....

    Vi prego datemi un aiuto ci sto impazzendo 2 giorni a fare prove per far funzionare questo cavolo di istruzione...
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Cominciamo dall'errore 1064 ... mi sembra che sia una segnalazione di "errore di sintassi della query" ... hai controllato cosa passi esattamente nella query? (ci sono tutti gli spazi necessari, ad esempio)?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  3. #3
    Ciao Oregon,
    mi facevo stampare la query per essere più sicuro e me le stampava a video correttamente.
    Poi ho fatto una cosa assurda ovvero ho copiato ed incollato la mysql_real_query di sopra nella parte "incriminata", ho cambiato qlc nome di variabile e adesso fatto sta che funziona
    So che può essere da pazzi ma è così. VVoVe:

    Ti ringrazio dell'interessamento Oregon

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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 © 2024 vBulletin Solutions, Inc. All rights reserved.