Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790

    creazioni di query in C

    come posso in C creare le query facilmente come in PHP(tipo $query="CREATE DATABASE $database")?
    mi faciliterebbe molto visto che sennò devo usare l'allocazione dinamica della memoria per usare sprintf(e l'allocazione dinamica se non gestita bene puo' essere pericolosa e quindi vorrei prevenire XD)
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  2. #2
    C e PHP sono linguaggi molto diversi, sia come contesto di utilizzo sia come livello di astrazione.

    Con quale DBMS vuoi interagire?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da pallinopinco
    C e PHP sono linguaggi molto diversi, sia come contesto di utilizzo sia come livello di astrazione.

    Con quale DBMS vuoi interagire?
    lo so ma era un esempio...sto usando mysql
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  4. #4
    lo so ma era un esempio...
    Quindi sai anche che l'ANSI C non ha nessuno strumento per "creare le query facilmente come in PHP"...

    Visto che usi MySQL devi ricorrere alla MySQL C API per gestire l'interazione con il database. Per il C++ (e per altri linguaggi) esistono dei wrapper ad alto livello.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da pallinopinco
    Quindi sai anche che l'ANSI C non ha nessuno strumento per "creare le query facilmente come in PHP"...

    Visto che usi MySQL devi ricorrere alla MySQL C API per gestire l'interazione con il database. Per il C++ (e per altri linguaggi) esistono dei wrapper ad alto livello.
    io uso già quel link per le funzioni, come risolvo? continuo ad usare sprintf?
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  6. #6
    io uso già quel link per le funzioni, come risolvo? continuo ad usare sprintf?
    Allora non capisco quale sia il problema... Mi fai vedere come esegui una query con la MySQL C API?
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  7. #7
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da pallinopinco
    Allora non capisco quale sia il problema... Mi fai vedere come esegui una query con la MySQL C API?
    voglio solo evitare di fare ciò:
    codice:
    char* query=(char*)malloc(sizeof(char)*strlen(db)+strlen(createD)+1);
    sprintf(query,"CREATE DATABASE %s",db);
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  8. #8
    :master:
    non è che si capisca bene dove sia il problema.

    Eventualmente usa il C++

    std::string db = "mio_db";
    std::string query = "CREATE DATABASE " + db;

  9. #9
    Utente di HTML.it L'avatar di Metflar
    Registrato dal
    Apr 2007
    Messaggi
    790
    Originariamente inviato da mondobimbi
    :master:
    non è che si capisca bene dove sia il problema.

    Eventualmente usa il C++

    std::string db = "mio_db";
    std::string query = "CREATE DATABASE " + db;
    non posso usare il c++
    cmq rispiego:
    in quel modo vado ad allocare memoria secondo un mio calcolo visto che il mio programma ne farà un largo utilizzo alcuni calcoli potrebbero essere sbagliati e incontrare bug...e chiedevo solo se c'era un modo per evitare tutto qui
    conoscenze: C/C++, Java, PHP, Python
    [No PM tecnici o di qualsiasi genere]

  10. #10
    Ci sono varie alternative, questa mi sembra la più semplice:

    codice:
     char query[4096]; // Assumiamo una query lunga al massimo 4096 caratteri
     snprintf(query,4096,"CREATE DATABASE %s",db);
     res = mysql_query(&mysql, query);
     ...
     mysql_close(&mysql);
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

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.