代码是出自目前的项目中;
目前只在linux下测试成功,其他待验证;
依赖mysqlclient这个动态库。
1.[代码]Makefile
objects=mysql_c.o
CCFLAGS= -I/usr/include/mysql/ -lmysqlclient
cc=gcc
mysql:mysql_c.o
$(cc) -o $@ $< $(CCFLAGS)
mysql_c.o:mysql_c.c
.PHONY:clean distclean
clean:
rm -rf *.o
distclean:
rm -rf mysql *.o
2.[文件] mysql_c.c ~ 1KB 下载(46)
#include
#include
#include
#include
int main( int argc, char *argv[] )
{
MYSQL mysql;
MYSQL_RES *result;
unsigned int num_fields;
unsigned int num_rows;
MYSQL_FIELD *fd;
MYSQL_ROW row;
int colNum = 0;
int i, j, k;
mysql_init(&mysql);
if( !mysql_real_connect(&mysql, "localhost", "root", "0", "zhao", 0, NULL, 0) )
fprintf(stderr, "Failed to connect to databse, Err %s\n", mysql_error(&mysql));
else
printf("connect to databse successfully!\n");
if( mysql_query(&mysql, "insert into shop values(7, 'E', 8.67)") )
{
fprintf(stderr, "Don't insert into table\n");
mysql_close(&mysql);
return -1;
}
if( mysql_query(&mysql, "select * from shop") )
{
fprintf(stderr, "Failed to query row, Err:%s\n", mysql_error(&mysql));
mysql_close(&mysql);
return -1;
}
result = mysql_store_result(&mysql);
if(result)
{
i = (int)mysql_num_rows(result);
printf("Query: %d records found\n", i);
for(i=0; fd = mysql_fetch_field(result); i++) //显示表的属性
{
printf("%s ", fd->name);
++colNum;
}
printf("\n");
}
for(i=0; i
{
row = mysql_fetch_row(result);
for(j=0; j
printf("%s ", row[j]);
printf("\n");
}
if(mysql_field_count(&mysql) == 0 )
{
num_rows = mysql_affected_rows(&mysql);
printf("affected rows: %d", num_rows);
}
mysql_close(&mysql);
return 0;
}