[C] Query con variabile in MySQL

di Anonimizzato13086 il
33 risposte

33 Risposte - Pagina 2

  • Non lo hai letto con attenzione. Lui ti ha indicato che ci vuole lo spazio. Tu dove hai previsto lo spazio?
  • Se ho capito bene quello che voleva dire, credo mi abbia anche scritto come dovrebbe essere e l'ho incollato
  • E quindi?

  • lui mi ha scritto :
    
    sprintf(query_insert,"insert into superpeer(ipSuperPeer,portNSuper,ipBoot) values(\'%s\',%d,\'%s\') ;",ip,port,ipBoot);
    
    e io l'ho incollato nel mio codice.
  • E quindi ???

    Hai risolto ? Hai capito ?
  • Riinserisco la mia ultima domanda postata, che gia include il pezzo di codice di skynet :

    Se io scrivo :
    
        char* query_insert = "INSERT INTO superpeer (ipSuperPeer,portNSuper,ipBoot) values ('aaabb',1,'aa');";
    
    tutto funziona e l'insert viene fatto.

    Se invece scrivo :
    
        char* query_insert;
        sprintf(query_insert,"insert into superpeer(ipSuperPeer,portNSuper,ipBoot) values(\'%s\',%d,\'%s\') ;",ip,port,ipBoot);
    

    In questo caso ottengo :
    Errore di segmentazione (core dump creato)

    Le variabili sono di questo tipo : const char* ip,int port,const char* ipBoot

    Non capisco perchè si verifica il problema...
  • Invece di riproporre nuovamente la stessa questione, rileggi nuovamente il codice di skynet.
    Magari leggi anche la prima linea che ti ha proposto.
  • Faccio ulteriori prove, se riesco vi informo
  • Ma che vuoi provare?

    skynet ha scritto

    char query_insert[100];

    mentre tu hai scritto

    char *query_insert;

    Il problema è tutto qui.
  • Ciao ragazzi,

    confermo che il codice suggerito da skynet funziona.

    Grazie per l'aiuto
  • Beh, ovviamente direi, ma devi anche capire il perché ...
  • Sapresti spiegarmi il perche?

    Grazie
  • Ah ... ma allora l'hai solamente copiato senza comprenderlo !

    Come ti è stato già detto, se usi un puntatore senza allocare lo spazio hai quell'errore visto che i dati non possono essere scritti da nessuna parte.
  • Dovrei fare malloc?

    dove mi e' stato detto?
  • Avrei una domanda per skynet:

    Il backslash che mi fai mettere nella query davanti alla stringa
    serve per consentire l'inserimento nel db anche di parole
    quali ad esempio 'D' antonio' ?
Devi accedere o registrarti per scrivere nel forum
33 risposte