MySQL Problem



  • Hallo zusammen.
    Ich kann zwar wunderbar mit einer MySQL Datenbank aus meiner Konsolenanwendung connecte´n, jedoch nützt mir das nicht viel, wenn ich nichts hinzufügen kann. Ich hab schon geschaut bis zum Dummwerden, aber entweder nichts brauchbares oder irgendwas mit Makros. Da hab ich keine Ahnung von. Kann mir von euch vielleicht jemand sagen, wie ich z.B. einen eingegebenen String auf die einfachste Art und Weise in die Datenbank übertrage?

    Hier ist der Code, was ich bisher gemacht habe. Wie gesagt: Der Connected nur zur Datenbank. Mehr nicht!

    #include <stdio.h>
    #include <string.h>
    #include <conio.h>
    #include <stdlib.h>
    #include "C:\Dev-Cpp\include\c++\3.3.1\backward\iostream.h"
    #include <conio.h>
    #if defined __WIN32__ || _MSC_VER
        #include <windows.h>
    #endif
    #include "c:\programme\mysql\mysql server 4.1\include\mysql.h"
    
    int main (int argc, char *argv[])
    {
    	system("cls");
    	void aufruf(char daten[20]);
    	void filmdaten_anfuegen();
    	int verbindung;
    	using namespace std;
    	char user[255];
    	char host[255];
    	char password[255];
    	char datenbank[255];
    	int port;
    	cout << "Benutzername:" ;
    	scanf("%s",&user);
    	cout << "Passwort:";
    	for ( int i = 0; i <= 255; i++)
    	{
    		password[i] = getch();
    		if ( password[i] == '\b')
    		{
    			password[i] = NULL;
    			i -= 1;
    		}
    		if ( password[i] == '\r' )
    		{
    			password[i] = NULL;
    			printf("\n");
    			break;
    		}
    		printf("*");
    	}
    	cout << "Host:" ;
    	scanf("%s",&host);
    	cout << "Port:" ;
    	scanf("%i",&port);
        MYSQL  *my;
       /* Handle initialisieren */
       my = mysql_init(NULL);
       if(my == NULL)
          {
             fprintf(stderr, " Initialisierung fehlgeschlagen\n");
             exit (0);
          }
       /* Mit dem Server verbinden */
       if( mysql_real_connect (
            my,   /* Zeiger auf MYSQL-Handler*/
            host, /* Host-Name*/
            user, /* User-Name*/
            password, /* Passwort für user_name */
            NULL,  /* Name der Datenbank*/
            port,     /* Port (default=0) */
            NULL,  /* Socket (default=NULL)*/
            0      /* keine Flags */  )  
    		== NULL)
          {
             fprintf (stderr, "Fehler mysql_real_connect():"
                  "%u (%s)\n",mysql_errno (my), mysql_error (my));
          }
       else
       {
    	   printf("Erfolgreich mit dem MySQL-Server verbunden\n");
    
       cout << "Datenbankname:";
       scanf("%s",&datenbank);
       verbindung = mysql_select_db(my, datenbank);
       if ( verbindung != 0 ) cout << "Datenbank existiert nicht!";
       else {
    	   cout << "Datenbank existiert!";
       }
       }
       mysql_close (my);
       return 0;
       getch();
    }
    


  • Dieser Thread wurde von Moderator/in C-O-M-M-A-N-D-E-R aus dem Forum MFC mit dem Visual C++ in das Forum WinAPI verschoben.

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

    Dieses Posting wurde automatisch erzeugt.



  • Mit einer SQL-Abfrage:

    INSERT INTO ...
    

    Oder was verstehst du unter

    String [..] in die Datenbank übertrage

    😕



  • Dieser Thread wurde von Moderator/in cd9000 aus dem Forum WinAPI 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.



  • Ja, das ist ja richtig. Das hab ich alles schon probiert.

    cout << "Bitte String eingeben:" ;
    	   scanf("%s",&anforderung);
    	   verbindung = mysql_query(my, anforderung);
    	   cout << verbindung;
    

    Als Antwort bekomme ich ungleich 0. Also muss da irgendwas falsch sein.

    Ich gebe dann ein:
    Bitte String eingeben: INSERT INTO filmdaten (titel) VALUES ('Der Patriot')

    ich mache extra kein Komma dahinter, weil der nullterminiert ist, soweit ich das jetzt gelesen habe.

    MySQL Server läuft und die Datenbank mit der Tabelle existiert auch.



  • Das SQL ist so schon richig. Lass dir doch mal die Fehlermeldung von mySQL aus-
    geben. Die sind meist recht ausführlich. z.B. so:

    if(mysql_real_query(&con, query.c_str(), (unsigned long)query.length()))
    	{
    		error = mysql_error(&con);
    	}
    

    Ach ja. Ich denke mit dem Komma meinst du ein Semikolon. Das brauchts / solltest
    du tatsächlich nicht verwenden.


Anmelden zum Antworten