文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>MySQL 提供的C API ,应用的例子

MySQL 提供的C API ,应用的例子

时间:2007-05-19  来源:willing66

MySQL 提供的C API ,应用的例子
引自:http://blog.chinaunix.net/u/22617/showart_246749.html

我又研究了一下 MySQL提供的C语言的API , 因为上次我提供的页面有创建远程用户  以及 修改mysql用户名和密码的 项 , 所以CGI里面必须调用 mysql的C API才能完成。 经过确认, 这些都可以被MySQL C API所支持。

比如 create database , create table , modify table , index 等等。

我们CGI里面所要做的就是 调用MySQL C API 来修改 MySQL 数据库里面的 mysql 数据库里面的user表即可。

下面是个例子 :

1>连接MySQL 数据库,并use mysql;
2> select * from user;   //查询表里面的数据
3>打印即可

编译:

gcc -o mysql_example mysql_example.c -I/usr/local/include/mysql -L /usr/local/lib/mysql/  -lmysqlclient  

执行结果:
#shell> ./mysql_example

[Copy to clipboard]

CODE:

localhost        root        *E6CC90B878B948C35E92B003C792C46C58C4AF40        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y                                        0        0        0        0       
boblinux        root                Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y                                        0        0        0        0       
boblinux                        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N                                        0        0        0        0       
localhost                        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N        N                                        0        0        0        0       
%        admin        *4ACFE3202A5FF5CF467898FC58AAB1D615029441        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y        Y                                        0        0        0        0       

代码:

[Copy to clipboard]

CODE:

/* 载入相关头文件*/
//#include <winsock2.h>
//在windows平台,假设链接时发现很多链接错误的时候,需要加上对winsock2.h的引用。
#include <stdio.h>
#include <mysql/mysql.h>

main() {
       
        MYSQL mysql;
        MYSQL_RES *result;
      
        MYSQL_ROW row;
        int numrows, numcols, c;
        char query[] = "SELECT *  FROM user";
      
        mysql_init(&mysql);

        /* 连接到数据库*/

        if (!mysql_real_connect(&mysql, "172.21.5.179",        "admin", "admin",        "mysql", 0, NULL, 0))
        {
                //访问失败输出错误信息
                fprintf(stderr,        "Failed to connect to database: Error %d:%s\n", mysql_errno(&mysql),mysql_error(&mysql));
                return -1;
        }

        /* 执行一个查询 */

        if (mysql_query(&mysql, query))
        {
                //查询失败输出错误信息
                fprintf(stderr,        "Error executing query: Error %d: %s\n",                mysql_errno(&mysql), mysql_error(&mysql));
        }

        /* 处理查询结果*/
      
      
//        25.2.3.47. mysql_num_rows()
//        my_ulonglong mysql_num_rows(MYSQL_RES *result)
//      
//        描述
//      
//        返回结果集中的行数。
//      
//        mysql_num_rows()的使用取决于是否采用了mysql_store_result()或mysql_use_result()来返回结果集。如果使用了mysql_store_result(),可以立刻调用mysql_num_rows()。如果使用了mysql_use_result(),mysql_num_rows()不返回正确的值,直至检索了结果集中的所有行为止。
//      
//        返回值
//      
//        结果集中的行数。
        result = mysql_store_result(&mysql);   //mysql_use_result() 和 mysql_store_result()

        if (!result)
        {
                //查询结果出错
                fprintf(stderr,        "Error executing query: Error %d: %s\n", mysql_errno(&mysql), mysql_error(&mysql));
        }

        /* 查找查询结果的列数 */

        numcols = mysql_num_fields(result);
        numrows = mysql_num_rows(result);
      
        printf("filds = %d\n",numcols);
        printf("rows = %d\n",numrows);
        printf("\n\n");

        /* 循环显示查询结果 */

        while (row = mysql_fetch_row(result)) {
                for(c=0; c<numcols; c++) {
                        printf("%s\t", row[c]);
                }
                printf("\n");
        }

}

 
相关阅读 更多 +
排行榜 更多 +
找茬脑洞的世界安卓版

找茬脑洞的世界安卓版

休闲益智 下载
滑板英雄跑酷2手游

滑板英雄跑酷2手游

休闲益智 下载
披萨对对看下载

披萨对对看下载

休闲益智 下载