C程序中怎么用mysql C API 创建新表table? 参考mysql安装目录下的 examples下的文件。嘿嘿。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 有这样子的例子么?我找找看,系统是RH linux9.0 mysql_real_query(....)只对增、删、改、查有效。MySQL的C API里没有建表的函数,只有建数据库,可不推荐使用。 应该是可以建表的,没有理由只能用手动建表。我找了一段代码,还没试。谁能给个可用的代码Here is an extract.....I hope it helps.please remember....u need to compile it with-lmysqlclient -lz options.#include <string.h>#include <stdio.h>#include "/usr/include/mysql/mysql.h"MYSQL imysql ;MYSQL_RES * mydata;unsigned int num_fields;unsigned int num_rows;unsigned long *lengths;MYSQL_ROW row,;MYSQL_FIELD *fields;char a[241]="";char querystring[241]="";void mysqlinit(char user[20], char password[20], char db[20]);void main(){mysqlinit("username","userpassword","database"); a[0] ='\0'; strcat(a,"Create Table "); strcat(a,tablename); strcat(a,"(pepsi bigint Not Null Primary,coke bigint Not Null);"); printf(a); strcpy(querystring,a);if (!mysql_real_query(&imysql,querystring,strlen(querystring))) { mydata = mysql_store_result(&imysql); } else { printf("Oops ! Error %d:%s\n",mysql_errno(&imysql),mysql_error(&imysql)); mysql_close(&imysql); exit(0); }mysql_close(&imysql);}void mysqlinit(char user[20], char password[20], char db[20]){mysql_init(&imysql);mysql_options(&imysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");if (!mysql_real_connect(&imysql,"",user,password,db,0,NULL,0)) { fprintf(stderr,"FAILED !!!! Error %s\n",mysql_error(&imysql)); } else { printf( "Connection with Database established !\n"); }} 试了一下,用mysql_real_connect()建表是可以的,使用方法和delete, insert, select, update一样的,上面说错了,不好意思楼主建不成表,可能是sql的问题吧,检查一下 mysql应该是没问题,直接建表可以建。你能不能把你建表的那段代码贴上来看看 我的意思是sql语句可能写错了MYSQL *myDatabase;// Connect to the database………………char sql[100] = "CREATE TABLE TEST(ID int(1), NAME char(10))";mysql_real_query(myDatabase, sql, strlen(sql));上面写成mysql_real_connect,抱歉,最近加班加多了 ;) 问题解决,是我的存储sql语句的char *太小 如何优化or查询 紧急求救!!!mysql中"you can't specify target table"错误 mysql.err谁能告诉哪里出了问题? MySql行转列的两个题目不会做,帮忙做下 MySQL的db表被删除了,怎么办 SQL 检查约束小总结 存储过程 mysql 没分了 mysql数据库导数据很慢为什么? Mysql起动后马上自动停止是什么原因? 查询问题, mysql支持select top 5 和子查询吗 急问,中英文混合查询的问题
我找找看,系统是RH linux9.0
MySQL的C API里没有建表的函数,只有建数据库,可不推荐使用。
没有理由只能用手动建表。
我找了一段代码,还没试。谁能给个可用的代码Here is an extract.....
I hope it helps.
please remember....u need to compile it with
-lmysqlclient -lz options.
#include <string.h>
#include <stdio.h>
#include "/usr/include/mysql/mysql.h"
MYSQL imysql ;
MYSQL_RES * mydata;
unsigned int num_fields;
unsigned int num_rows;
unsigned long *lengths;
MYSQL_ROW row,;
MYSQL_FIELD *fields;char a[241]="";
char querystring[241]="";
void mysqlinit(char user[20], char password[20], char db[20]);void main()
{
mysqlinit("username","userpassword","database"); a[0] ='\0';
strcat(a,"Create Table ");
strcat(a,tablename);
strcat(a,"(pepsi bigint Not Null Primary,coke bigint Not Null);");
printf(a);
strcpy(querystring,a);if (!mysql_real_query(&imysql,querystring,strlen(querystring)))
{ mydata = mysql_store_result(&imysql); }
else
{ printf("Oops ! Error %d:
%s\n",mysql_errno(&imysql),mysql_error(&imysql));
mysql_close(&imysql);
exit(0);
}mysql_close(&imysql);
}
void mysqlinit(char user[20], char password[20], char db[20])
{
mysql_init(&imysql);
mysql_options(&imysql,MYSQL_READ_DEFAULT_GROUP,"your_prog_name");
if (!mysql_real_connect(&imysql,"",user,password,db,0,NULL,0))
{
fprintf(stderr,"FAILED !!!! Error %s\n",mysql_error(&imysql));
}
else
{
printf( "Connection with Database established !\n");
}
}
楼主建不成表,可能是sql的问题吧,检查一下
你能不能把你建表的那段代码贴上来看看
………………char sql[100] = "CREATE TABLE TEST(ID int(1), NAME char(10))";
mysql_real_query(myDatabase, sql, strlen(sql));上面写成mysql_real_connect,抱歉,最近加班加多了 ;)