linux下c操作mysql之增删改查


    
    
demo
/************************************************************
    FileName : demo.c
    FileFunc : C语言接口访问MySQL
    Version  : V0.1
    Author   : JeffSui
    Date     : 2014-02-20
    Descp    : c查询mysql数据库遍历输出
*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include "/usr/include/mysql/mysql.h"

int main(int argc,char *argv[])
{
        MYSQL my_connection,*conn_ptr;
        MYSQL_RES *res_ptr;
        MYSQL_ROW sqlrow;
        int iRet;
        int iTableRow,iTableCol,i,j;
        char *server = "localhost";
        char *user = "root";
        char *password = "";
        char *database = "csql";
        unsigned int uiTimeOut = 7;//设置连接超时7s

        conn_ptr = mysql_init(&my_connection);//初始化连接句柄
        if( !conn_ptr )
        {
                fprintf(stderr,"mysql_init failed ! \n");
                return EXIT_FAILURE;
        }

        iRet = mysql_options(&my_connection,MYSQL_OPT_CONNECT_TIMEOUT,(const char *)&uiTimeOut);//设置连接超时
        if( iRet )
        {
                fprintf(stderr,"Connection is timeout! \n");
                return EXIT_FAILURE;
  }

        conn_ptr = mysql_real_connect(&my_connection,server,user,password,database,0,NULL,0);//连接数据库
        if( conn_ptr )
        {
                printf("Connection success!\n");

                iRet = mysql_query(&my_connection,"select * from children");//执行SQL语句
                if( iRet )
                {
                        fprintf(stderr,"select error %d: %s !\n",mysql_errno(&my_connection),mysql_error(&my_connection));//>打印错误处理具体信息
                        return EXIT_FAILURE;
                }


                res_ptr = mysql_store_result(&my_connection);//集合
                if( res_ptr )
                {
                        iTableRow = mysql_num_rows(res_ptr);//行
                        iTableCol = mysql_num_fields(res_ptr);//列

                        for(i=0; i<iTableRow; i++)
                        {
                          sqlrow = mysql_fetch_row(res_ptr);
                          for(j=0; j<iTableCol; j++)
                          {
                                printf("%-8s  ",sqlrow[j]);//字符串向左靠,右补空格
                          }
                          printf("\n");

                        }

                        mysql_free_result(res_ptr);//完成对数据的所有操作后,调用此函数来让MySQL库清理它分配的对象
                }
mysql_close(&my_connection);//关闭连接
        }     else
        {

                fprintf(stderr,"Connection failed!\n");
                if( mysql_errno(&my_connection) )
                {
                        fprintf(stderr,"Connection error %d: %s!\n",mysql_errno(&my_connection),mysql_error(&my_connection));
                }
        }

        return EXIT_SUCCESS;

}
insert.c

/******************************************************
    FileName : insert.c
    FileFunc : C语言接口访问MySQL
    Version  : V0.1
    Author   : JeffSui
    Date     : 2014-02-24
    Descp    : c插入mysql数据库
******************************************************/
#include <stdlib.h>
#include <stdio.h>
#include "/usr/include/mysql/mysql.h"
int main() {
        MYSQL *conn_ptr;
        int res;

        conn_ptr = mysql_init(NULL);
        if (!conn_ptr) {
                printf("mysql_init failed\n");
                return EXIT_FAILURE;
        }
        conn_ptr = mysql_real_connect(conn_ptr, "localhost", "root", "", "csql", 0, NULL, 0);
        if (conn_ptr) {
                res = mysql_query(conn_ptr, "insert into children values(null,'jeffsui',5)");   //可以把insert语句替换成delete或者update语句,都一样的
                if(!res){
        printf("Insert %lu rows\n",(unsigned long)mysql_affected_rows(conn_ptr));
}else{
        fprintf(stderr,"Insert error %d: %s\n",mysql_error(conn_ptr),mysql_error(conn_ptr));
}
}else{
        printf("Connection failed!");

}
mysql_close(conn_ptr);
return EXIT_SUCCESS;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值