1. [代码][C/C++]代码

#include <mysql/mysql.h>
#include <stdio.h>
#include <string.h>
int main()
{
    MYSQL mysql;//连接数据库的变量
    MYSQL_RES *res;//存放查询结果的变量
    MYSQL_ROW row;
    char *query;
    int t,r;
    char *server= "localhost";
    char *user = "root";
    char *password="test";
    char *database = "test";
    mysql_init(&mysql); //连接数据库前,必须调用此函数初始化变量
    /**
     * MYSQL *mysql_init(MYSQL *mysql)
     * 传入MYSQL类型的指针
     * 返回一个被初始化的MYSQL*句柄
     * 在内存不够的情况下,返回NULL
     */
    if(!mysql_real_connect(&mysql,server,user,password,database,0/*TCP IP端口*/,NULL/*Unix socket连接类型*/,0/*运行成ODBC数据库的标记*/))
    {
        printf("Error connection to database:%s/n",mysql_error(&mysql));
    }else
        printf("Connected.../n");
    query = "select * from t1";
    printf("query execute:%s/n",query);
    t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));
    /**
     *
     * int STDCALL mysql_real_query(MYSQL *mysql,const char *q, unsigned int length);
     * 执行任何SQL查询语句进行查询。
     * mysql是我们前面用过的变量,q是SQL查询语句,length是这个查询语句的长度。
     */
    if(t)
    {
        printf("Error making query:%s/n",mysql_error(&mysql));
    }else
        printf("[%s] made.../n",query);
    res = mysql_store_result(&mysql);
    /**
     * mysql_store_result(MYSQL *mysql)
     * 立刻检索全部结果
     *
     * mysql_use_result(MYSQL *mysql)
     * 初始化一个一行一行地结果集合的检索
     */
    while(row = mysql_fetch_row(res))
    {
        /**
         * MYSQL_ROW STDCALL mysql_fetch_row(MYSQL_RES *result);
         * 检索行
         */
        for(t=0;t<=mysql_num_fields(res);t++)
        {
            printf("%s",row[t]);
        }
        printf("/n");
    }
    printf("mysql_free_result.../n");
    mysql_free_result(res);
    /**
     * mysql_free_result()
     * 释放由它使用的内存。
     */
    sleep(1);
    //execute the insert query
    query = "insert into t1(id,name) values(3,'kunp')";
    t = mysql_real_query(&mysql,query,(unsigned int) strlen(query));
    if(t)http://www.huiyi8.com/hunsha/hanshi/
    {韩式婚纱照片
        printf("Error making query:%s/n",query);
        mysql_error(&mysql);
    }
    else printf("[%s] made.../n",query);
    mysql_close(&mysql);
    /**
     * void mysql_close(MYSQL *mysql)
     * 传入MYSQL类型的指针
     * 功能,关闭一个服务器连接,并释放与连接相关的内存i
     */
    return 1;
}
//编译:gcc testsql.c -I/usr/include/mysql -L/usr/lib/mysql -lmysqlclient -o testsql
2. [代码][C/C++]代码   
#include <stdlib.h>
#include <stdio.h>
#include <mysql/mysql.h>
int main(void){
MYSQL_RES *res_ptr;
MYSQL_ROW sqlrow;
MYSQL *conn_ptr;
int result;//query result
int iTableRow,iTableCol,i,j;
 conn_ptr = mysql_init(NULL);
 if (!conn_ptr)
 {
        fprintf(stderr,"mysql_init failed!\n");
         return (-1);
 }
 conn_ptr = mysql_real_connect(conn_ptr,"127.0.0.1","root","123456","mysql",3306,0,NULL);
 if (conn_ptr)
 {
         printf ("connection succeed!\n");
 }
 else{
         printf ("connection failed!\n");
        return (-2);
 }
result = mysql_query(conn_ptr,"select * from test.tbl_user");
if(result){
        printf(stderr,"select error %d: %s !\n",mysql_errno(conn_ptr),mysql_error(conn_ptr));//
        return EXIT_FAILURE;
}
res_ptr = mysql_store_result(conn_ptr);//集合
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(conn_ptr);
 
 printf ("connection close!\n");
 return 0;
 }
 
 编译:gcc -o mydbcon -I /usr/include/mysql/ -L /usr/lib/mysql -lmysqlclient mysql.c
 
 运行:./mydbcon

C/C++连接查询MYSQL的更多相关文章

  1. Mysql 连接查询 Mysql支持的连接查询有哪些

    CREATE TABLE `chx` (   `id` VARCHAR(20) NOT NULL,   `name` VARCHAR(50) DEFAULT NULL,   `name2` CHAR( ...

  2. [Go] golang连接查询mysql

    package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "lo ...

  3. mysql的查询、子查询及连接查询

    >>>>>>>>>> 一.mysql查询的五种子句         where(条件查询).having(筛选).group by(分组). ...

  4. MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)

    注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...

  5. mysql连接查询,封装mysql函数

    连接查询 交叉连接语法: select  * | 字段列表 from 表1  cross join 表2 内连接: select *|字段列表 from 左表 inner join 右表 on 左表. ...

  6. MySql的连接查询

    类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...

  7. mysql连接查询经典小例题

    mysql连接查询: Mysql连接查询支持多表连接 对同一张表可以重复连接多次(别名在多次连接同一张表时很重要) 例题1: 下面有2张表 teams表 比赛结果表:result 问题: 得出一张表: ...

  8. MySQL查询优化:连接查询排序limit

    MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27      个评论       收藏    我要投稿   MySQL查询优化:连接查询排序 ...

  9. 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)

     mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...

随机推荐

  1. AutoCAD如何快速标注零件序号

    1 先画好一条直线和一个数字   2 选中刚才绘制的数字和直线,选择阵列(估计大概要画四十个就阵列四十行,改一下行偏移)   预览效果如图所示   随后不断重复直线即可   横向也是一样   最后双击 ...

  2. Java Transaction Management

    Just a few weeks ago, I had a discussion with one of my colleagues about how to manage the transacti ...

  3. 文件I/O操作为什么叫输入/出流

    参考以下文档: http://blog.csdn.net/hguisu/article/details/7418161 我们关注的焦点是错误的,重点不在文件,我们关注的核心是数据流. 这种流可以是文本 ...

  4. css:清除浮动 overflow

    是因为overflow除了(visible)会重新给他里面的元素建立块级格式化(block formatting context)floats, position absolute, inline-b ...

  5. RF --系统关键字开发

    需求: 接收一个目录路径,自动遍历目录下以及子目录下的所有批处理(.bat) 文件并执行. 首先在..\Python27\Lib\site-packages 目录下创建 CustomLibrary 目 ...

  6. 笔记本中LVDS屏与eDP屏的比较

    LVDS,即Low Voltage Differential Signaling,是一种低压差分信号技术接口.它是美国NS公司(美国国家半导体公司)为克服以TTL电平方式传输宽带高码率数据时功耗大.E ...

  7. caffe编译的问题 找不到opencv的 tiff库文件

    解决办法:    sudo  su cmake  .. make  -j8 make  pycaffe make  install 问题解决. 看起来是权限问题导致.

  8. 【Servlet与JSP】请求转发与重定向

    假设一个登录系统,要求用户输入用户名和密码: 用户在上面表单当中输入了信息之后,点击登录按钮(type="submit")将表单作为请求参数进行提交. 这一提交就有两种形式:get ...

  9. LRU java实现

    实现LRU缓存,用到了一个链表和 HashMap, HashMap保证了get/set的时间复杂度是O(1), 链表用来记录 最近最少使用的元素,以便用来淘汰. package lru; /** * ...

  10. WPF中的ListBox实现按块显示元素的方法

    本文实例讲述了WPF中的ListBox实现按块显示元素的方法.分享给大家供大家参考,具体如下: 注意:需要设置ListBox的属性 ScrollViewer.HorizontalScrollBarVi ...