Centos 6.5下C连接MySQL测试

时间:2022-05-14 11:26:55

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