create table if not exsits tbl_test... table_name als variable?
-
Hallo alle,
kann hier jemand mir helfen?Ich möchte mit -->
create table if not exsits tbl_test (spalte_1, spalte_2, ...);
die Table erstellen, zwar tbl_test als variable, wie macht man so was?so funktiert nicht
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <mysql.h> #define HOST "141.58.00.10" #define USER "my-linux" #define PASSWORT "1234" #define DBNAME "db_test" #define PORT 0 #define SOCKET NULL #define FLAG 0 int main (int argc, char **argv) { MYSQL *my; char *str; //Handle initialisieren my = mysql_init( NULL ); if( my == NULL) { fprintf(stderr, " Initialisierung fehlgeschlagen\n"); return EXIT_SUCCESS; } //Mit dem Server verbinden if( mysql_real_connect ( my, /* Zeiger auf MYSQL-Handler*/ HOST, /* Host-Name*/ USER, /* User-Name*/ PASSWORT, /* Passwort für user_name */ DBNAME, /* Name der Datenbank*/ PORT, /* Port (default=0) */ SOCKET, /* Socket (default=NULL)*/ FLAG /* 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"); char * tbl_name = "tbl_test"; str = "CREATE TABLE IF NOT EXISTS %s (`spalte_1` int(10) unsigned default NULL, `spalte_2` DOUBLE NOT NULL default '-1', `spalte_3` int(6) NOT NULL default '-1')", tbl_name; mysql_real_query(my, str, strlen(str)); mysql_close (my); return EXIT_SUCCESS; }
ich arbeite unter LINUX schreibe client_programm mit C.
-
rena schrieb:
char * tbl_name = "tbl_test"; str = "CREATE TABLE IF NOT EXISTS %s (`spalte_1` int(10) unsigned default NULL, `spalte_2` DOUBLE NOT NULL default '-1', `spalte_3` int(6) NOT NULL default '-1')", tbl_name;
Ich würde bzw. hab das schon wie folgt gemachen:
string tbl_name = "tbl_test"; string str = "CREATE TABLE IF NOT EXISTS " + tbl_name + "(`spalte_1` int(10) unsigned default NULL, `spalte_2` DOUBLE NOT NULL default '-1', `spalte_3` int(6) NOT NULL default '-1');";
-
dank für die Antwort.
aber c kennt keine --> str = str1 + str2;
gibt es Irgendwer einen Antwort od. Tutorials, mit dem ich anfangen kann.
-
Wenn es unbedingt C sein muss, würde ich wohl sprintf benutzen.
const int maxbuf = 250; char * tbl_name = "tbl_test"; char buffer[250]; // so dass alles rein passt, hab nicht nachgezaehlt int bufsize; bufsize= sprintf(buffer, "CREATE TABLE IF NOT EXISTS %s (`spalte_1` int(10) unsigned default NULL, `spalte_2` DOUBLE NOT NULL default '-1', `spalte_3` int(6) NOT NULL default '-1')", tbl_name); if (bufsize > 0) mysql_real_query(my, buffer, bufsize);
Eine andere Möglichkeit ist, die strings mit strcat zu verknüpfen.
Edit:
Lösungsvorschlag korrigiert.
-
dankeschön, es funktioniert
variable so soll definiert werden
char * tbl_name = "tbl_test"; char buffer[250]; // so dass alles rein passt, hab nicht nachgezaehlt int bufsize;
bei char buffer[250] ohne *