本文目录一览:
C语言怎样连接mysql数据库
mysql是有c语言接口的,安装相应库后就可以链接了,一般连接mysql的函数是mysql_connect或者mysql_real_connect(大概就是这么拼的吧。。。)可以使用mysql_query执行sql语句。
mysql与c语言连接,代码求解释。
if (!mysql_real_connect(mysql,"localhost", "root", "", "drug management", 3306, NULL, 0))
//判断数据库连接是否成功
if(t)
//t是mysql_real_query的返值,使用if来判断sql语句执行是否成功。
c语言怎么连接mysql数据库 代码
//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径
//在工程设置-》链接》库模块中添加 libmysql.lib
#include stdio.h
#include time.h
#include string.h
#include winsock.h
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
char *server = "localhost";
char *user = "root";
char *password = "";
char *database = "test";
char sql[1024] = "select * from chinaren";
conn = mysql_init(NULL);
if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
if(mysql_query(conn, sql)){
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
while((row = mysql_fetch_row(res)) != NULL){
printf("%s\n", row[2]);
}
mysql_free_result(res);
mysql_close(conn);
}
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include windows.h
#endif
#include stdio.h
#include stdlib.h
#include "mysql.h"
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
MYSQL mysql, *handle; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *result; //查询结果集,结构类型
MYSQL_FIELD *field ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char querysql[160]; //存放查询sql语句字符串
//初始化
mysql_init(mysql);
//连接数据库
if (!(handle = mysql_real_connect(mysql, "localhost", "user", "pwd", "dbname", 0, NULL, 0))) {
fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(mysql));
}
sprintf(querysql, SELECT_QUERY, atoi(argv[1]));
//查询数据库
if(mysql_query(handle, querysql)) {
fprintf(stderr, "Query failed (%s)\n", mysql_error(handle));
}
//存储结果集
if (!(result = mysql_store_result(handle))) {
fprintf(stderr, "Couldn't get result from %s\n", mysql_error(handle));
}
printf("number of fields returned: %d\n", mysql_num_fields(result));
//读取结果集的内容
while (row = mysql_fetch_row(result)) {
printf("table: %s\n", (((row[0] == NULL) || (!strlen(row[0]))) ? "NULL" : row[0]));
}
//释放结果集
mysql_free_result(result);
//关闭数据库连接
mysql_close(handle);
system("PAUSE");
//为了兼容大部分的编译器加入此行
return 0;
}
用C语言如何对MySQL数据库进行操作
有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接MySQL数据库,并且读取里面的数据返回,同时如何进行编译。
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include windows.h
#endif
#include stdio.h
#include stdlib.h
#include mysql.h //我的机器上该文件在/usr/local/include/mysql下
//定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "select username from tbb_user where userid=%d"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
MYSQL mysql, *sock; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
MYSQL_RES *res; //查询结果集,结构类型
MYSQL_FIELD *fd ; //包含字段信息的结构
MYSQL_ROW row ; //存放一行查询结果的字符串数组
char qbuf[160]; //存放查询sql语句字符串
if(argc != 2){ //检查输入参数
fprintf(stderr, "usage: mysql_select userid\n\n");
exit(1);
}
mysql_init(mysql);
if(!(sock = mysql_real_connect(mysql, "localhost", "dbuser", "dbpwd", "9tmd_bbs_utf8", 0, NULL, 0))){
fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(mysql));
perror();
exit(1);
}
sprintf(qbuf, SELECT_QUERY, atoi(argv[1]));
if(mysql_query(sock, qbuf)){
fprintf(stderr, "Query failed (%s)\n", mysql_error(sock));
exit(1);
}
if(!(res = mysql_store_result(sock))){
fprintf(stderr, "Couldn't get result from %s\n", mysql_error(sock));
exit(1);
}
printf("number of fields returned: %d\n", mysql_num_fields(res));
while(row = mysql_fetch_row(res)){
printf("The userid#%d's username is: %s\n", atoi(argv[1]), (((row[0] == NULL) || (!strlen(row[0]))) ? "NULL" : row[0]));
puts("query ok!\n");
}
mysql_free_result(res);
mysql_close(sock);
exit(0);
return 0; //为了兼容大部分的编译器加入此行
}
编译的时候,使用下面的命令:
gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) # 后面两个选项可选,根据您的环境情况
运行的时候,执行下面的命令:
./mysql_select 1
将返回如下结果:
number of fields returned: 1
The userid#1's username is: Michael
query ok!
上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档源码天空,各个函数都有详细说明,有时间我整理一份常用的API说明出来。