SQL insert into



  • Ich versuche über mein programm ein insert into in meine tabelle zu schreiben. Allerdings klappt das nicht so richtig, zumal ich da ohnehin noch ein verständnisproblem habe. Muss ich, wenn ich eine zeile einfüge, auch ein resultset entgegen nehmen? Oder reicht es einfach den query auf den weg zu schicken und es sollte klappen?

    Also die Verbindung zur Datenbank besteht und ich versuche dann mit diesem befehlen etwas in die datenbank zu schreiben:

    std::string stringStmt = "INSERT INTO mitarbeiter(nachname,vorname,geb) VALUES("+ nachname +","+ vorname +",840101)";
    
            //umsetzen des strings in einen c-string
    	const char *stmt = stringStmt.c_str();
    
    	mysql_query(pConnection,stmt);
    	std::cout<<"Insert sollte durchgeführt sein"<<std::endl;
    

    Ist dan was grundlegend dran falsch?

    EDIT: Zur Tabelle: es gibt als primär key eine id-nummer die als eigenschaft "auto-increment" hat.(falls die info relevant ist).



  • Souljumper schrieb:

    //umsetzen des strings in einen c-string
        const char *stmt = stringStmt.c_str();
    

    wozu machst du das? meiner meinung nach ist c_str() ein **const char ***

    mfg blan



  • blan schrieb:

    Souljumper schrieb:

    //umsetzen des strings in einen c-string
        const char *stmt = stringStmt.c_str();
    

    wozu machst du das? meiner meinung nach ist c_str() ein **const char ***

    mfg blan

    ich will mir mein statement variable zusammen setzten. ich habs nicht hinbekommen ein char array direkt richtig zu befüllen. deswegen geh ich den weg über einen string und setzt den dann in einen c-string um? wie wäre den der direkt weg?



  • mysql_query(pConnection,stringStmt.c_str());
    

    Den const char* sollte man nicht länger als nötig aufbewahren, also direkt rein da 😉



  • oh ok :-).

    Noch jemand einen Tipp mit dem insert into?



  • std::string stringStmt = "INSERT INTO mitarbeiter(nachname,vorname,geb) VALUES("+ nachname +","+ vorname +",840101)";
    
        mysql_query(pConnection,stringStmt.c_str());
        std::cout<<"Insert sollte durchgeführt sein"<<std::endl;
    

    so muss es auch funktionieren, da das c_str() hinter deiner string-klasse ein **const char *** ist, du ersparst dir deine zwischen-variable. außerdem würd ich den namespace std benutzen, dann muste net immer std:: davor schreiebn.

    edit: funktioniert des nicht so, mit nur dem query - bringter ein fehler?

    mfg blan



  • Argh verdammt, als ich die "" eingebaut für die variablen, sind die hochkommata verloren gegeangen....da die informationen aber in felder kommen die als varchar definiert sind, funktioniert das nicht.

    sorry - aber ganz umsonst war der thread für mich ja nicht. immerhin eine const char variable gespart.

    thx



  • Dieser Thread wurde von Moderator/in evilissimo aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Dieser Thread wurde von Moderator/in kingruedi aus dem Forum Rund um die Programmierung in das Forum Datenbanken verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.


Anmelden zum Antworten