您的位置:首页 > 其它

>--练习总结

2009-11-10 18:43 756 查看
看了一些关于MySQL与C接口的文章,自己也终于经过努力后顺利实现了在数据库和表已经存在的前提下,进行了插入数据的操作,

程序如下:

#include </usr/include/mysql/mysql.h> //绝对要写绝对路径,以防没有找到库

#include<stdio.h>

#include<stdlib.h>

int main(int argc, char **argv)

{

MYSQL mysql,*ptr;

MYSQL_ROW row;

char SqlText[500]="";

float da=6.0;

int num= 1257487794;

mysql_init(&mysql);//分配或初始化与mysql_real_connect()
相适应的MySQL
对象。
如果mysql
是NULL
指针,
该函数将分配、初始

化, 并返回新对象。否则,将初始化对象,并返回对象的地址。

if((ptr=mysql_real_connect(&mysql,"localhost","root","123456","wangwei",0,NULL,0))!=0) //试图建立与运行在主机上的

MySQL
数据库引擎的连接


{

printf("connected../n");

}

else

{

printf("Error connecting to database: %s/n" ,mysql_error(&mysql));

exit(1);

}

sprintf(SqlText,"insert into mydata values(%.1f,%d)", da, num); //SQL语句绝对要在mySQL中执行过后复制过来,以防有错。

sprintf()函数 将字串格式化,做字符转换用。

if(!mysql_query(ptr, SqlText))//执行由“Null
终结的字符串”查询指向的SQL
查询。成功,返回0


{

printf("ok/n");

}

else

{

printf("Can't insert data to table!%s/n",mysql_error(ptr));

}

mysql_close(ptr);//关闭前面打开的连接。如果句柄是由mysql_init()
或mysql_connect()
自动分配的,mysql_close()

还将解除分配由

mysql
指向
的连接句柄。

return 0;

}

补充:sprintf(SqlText,"insert into mydata values(%.1f,%d)", da, num);该语句解决了mysql_query()函数如何利用变量插入数据表的问题!

本人所用系统为UBUNTU9.10。

守得云开见月明
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: