Centos 6.5下C连接MySQL测试

时间:2022-06-29 03:01:58

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