Centos 6.5下C连接MySQL测试
#include <stdio.h> #include <string.h> #include <errno.h> #include "mysql.h" int main(void) { MYSQL *conn_ptr; MYSQL_RES *res; MYSQL_ROW row; char *host = "127.0.0.1"; char *user = "root"; char *password = "123456"; char *db = "mysql"; unsigned int port = 3306; char *unix_socket = NULL; unsigned long client_flag = 0; conn_ptr = mysql_init(NULL); if(!conn_ptr) { fprintf(stderr, "init mysql failed\n"); return(-1); } conn_ptr = mysql_real_connect(conn_ptr, host, user, password, db, port, unix_socket, client_flag); if(conn_ptr) { printf("Connection success......\n"); } else { fprintf(stderr, "Connection failed......%d:%s\n", errno, strerror(errno)); } if( mysql_query(conn_ptr, "select host,user from user")) { fprintf(stderr, "call mysql_query failed......%d:%s\n",errno, strerror(errno)); } res = mysql_use_result(conn_ptr); fprintf(stdout, "select host, user from user talbe in the mysql database:\n"); while((row = mysql_fetch_row(res))) { fprintf(stdout, "%s\t%s\n", row[0], row[1]); } //增加mysql数据表的条目 if( mysql_query( conn_ptr , "insert into t_user values( 'Anna' )" ) ){ printf("增加数据表条目失败 %d: %s\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//打印出错误代码及详细信息 }else{ printf("增加数据表条目成功 Inserted %lu rows\n",(unsigned long)mysql_affected_rows(conn_ptr));//输出受影响的行数 } //增加mysql数据表的条目 if( mysql_query( conn_ptr , "insert into t_user values( 'Lisa' )" ) ){ printf("增加数据表条目失败 %d: %s\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//打印出错误代码及详细信息 }else{ printf("增加数据表条目成功 Inserted %lu rows\n",(unsigned long)mysql_affected_rows(conn_ptr));//输出受影响的行数 } //删除mysql数据表的条目 if( mysql_query( conn_ptr , "delete from t_user where name='Anna'" ) ){ printf("删除数据表条目失败 %d: %s\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//打印出错误代码及详细信息 }else{ printf("删除数据表条目成功 Delete %lu rows\n",(unsigned long)mysql_affected_rows(conn_ptr));//输出受影响的行数 } //更新修改mysql数据表的条目 if( mysql_query( conn_ptr , "update t_user set name='Lisa00000' where name='Lisa'" ) ) { printf("修改数据表条目失败 %d: %s\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//打印出错误代码及详细信息 } else//成功 { printf("修改数据表条目成功 Update %lu rows\n",(unsigned long)mysql_affected_rows(conn_ptr));//输出受影响的行数 } //查询mysql数据库中的表格 if( mysql_real_query(conn_ptr, "select * from t_user", (unsigned long)strlen("select * from t_user")) )//mysql_real_query函数第一个参数是定义的MYSQL变量;第二个是SQL查询语句;第三个是查询语句的长度 { printf("查询数据失败。\n"); } else//查询数据成功 { //存储结果集 if( (res=mysql_store_result(conn_ptr)) == NULL ) { printf("保存结果集失败。\n"); } else//保存结果集成功 { while( (row=mysql_fetch_row(res)) != NULL )//重复读取行,直到row为NULL { printf("name is %s\n", row[1]);//打印当前行的数据 } } } mysql_free_result(res); mysql_close(conn_ptr); return 0; }
centos6.5编译:
gcc -o test test.c -I/usr/include/mysql/ -lmysqlclient -Wall -g -L/usr/lib64/mysql