Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83

    [C] Problema inserimento dati nel mysql

    Salve a tutti,
    ho un problema con l'inserimento di alcuni dati ricevuti da una postazione client in un db mysql.
    in pratica il problema è quando vado a inserire i dati nel db in questa riga:

    mysql_query(conn,
    "INSERT INTO dati (x, y, temperature) VALUES ( 'x', 'y', 'temp')");

    }

    in pratica mi inserisce i valori 0,0,0 perchè non vede x,y,temp come numeri ma come stringhe.
    il codice completo è il seguente:


    Codice PHP:
    #include <mysql/my_global.h>
    #include <mysql/mysql.h>
    #include <stdio.h>
    #include <string.h>
    #include <unistd.h>
    #include <netdb.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <netinet/in.h>
    #include <arpa/inet.h>

    #define QUEUE_LEN 20
    #define BUFF_SIZE 20

    int main()
    {
     
    MYSQL *conn;        /*comandi per inizializzare mysql */
     
    MYSQL_RES *result;
     
    MYSQL_ROW row;
    int i 1;
    int temp/*inizializza la varabile di temperatura */
    int x/* inizializza la varabile x */
    int y/* inizializza la varabile y */
    int sk/* Socket per la comunicazione del server */
    int client/* Socket per la comunicazione con il client */
    int ret/* Ritorno delle funzioni */
    int len/* Dimensione strutture dati */
    struct sockaddr_in s_addr/* Indirizzo Server */
    struct sockaddr_in c_addr/* Indirizzo Client */

    int buffer[BUFF_SIZE]; /* definisco l'arrey Buffer di Ricezione dati */

    int port 2001/* Porta del Server */
    char address[] = "127.0.0.1"/* Indirizzo IP del Server */


        /* Creazione del socket */
        
    sk socket(AF_INETSOCK_STREAM0);    

    while (
    == 1
    {

        
    /* Inizializzazione indirizzo del Server */
        
    bzero(&s_addrsizeof(s_addr));
        
    s_addr.sin_family AF_INET;
        
    s_addr.sin_port htons(port);
        
    s_addr.sin_addr.s_addr htonl(INADDR_ANY);


        
    /* Bind del socket */
        
    ret bind(sk, (struct sockaddr*) &s_addrsizeof(s_addr) );
        
        
        
    /* Creazione coda di richieste di connessione */
        
    ret listen(skQUEUE_LEN);
        
        
        
    /* Inizializzazione indirizzo del Client */
        
    bzero(&c_addrsizeof(c_addr));
        
    len sizeof(c_addr);
        
        
    /* Accept connessioni con i client */
        
    client accept(sk, (struct sockaddr*)&c_addr, &len );

        
    /* Ricezione Dati */
        
    ret recv(clientbufferBUFF_SIZE0);
        
            
        
    /* scomposizione array in variabili indipendenti */
        
    int x buffer[0];
        
    int y buffer[1];
        
    int temp buffer[2];
        
        
    /*controllo dati ricevuti */
        
    printf("Server Receive: x= %d\n"x);
        
    printf("Server Receive: y= %d\n"y);
        
    printf("Server Receive: temp= %d\n"temp);

        
    /* scrittura in mysql */
        
    conn mysql_init(NULL);

        if(!
    mysql_real_connect(conn"localhost""root""pass""rrobotics"0NULL0))
        {

            
    printf("cannot connect");
         }

        else{

             
    mysql_query(conn
             
    "INSERT INTO dati (x, y, temperature) VALUES ( 'x', 'y', 'temp')");

        }

         
    mysql_close(conn);
         
        
    /* Chiusura del socket di comunicazione con il Client */
        
    close(client);
        }


    in pratica a me servirebbe riuscire ad inserire queste variabili che sono dei numeri nel db.
    c'è qualcuno che mi può aiutare? grazie!!!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2009
    Messaggi
    225
    prova così
    codice:
    char str[lunghezza_opportuna];
    
    sprintf(str, "INSERT INTO dati (x, y, temperature) VALUES (%d,%d,%d)", x, y, temp);
    
    mysql_query(conn,
    str);

  3. #3
    Utente di HTML.it L'avatar di taba93
    Registrato dal
    Oct 2007
    Messaggi
    83
    grazie mille!!! funziona alla perfezione...grazie ancora per la dritta!!

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.