C/C++连接查询MYSQL
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的更多相关文章
- Mysql 连接查询 Mysql支持的连接查询有哪些
CREATE TABLE `chx` ( `id` VARCHAR(20) NOT NULL, `name` VARCHAR(50) DEFAULT NULL, `name2` CHAR( ...
- [Go] golang连接查询mysql
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "lo ...
- mysql的查询、子查询及连接查询
>>>>>>>>>> 一.mysql查询的五种子句 where(条件查询).having(筛选).group by(分组). ...
- MySql学习(三) —— 子查询(where、from、exists) 及 连接查询(left join、right join、inner join、union join)
注:该MySql系列博客仅为个人学习笔记. 同样的,使用goods表来练习子查询,表结构如下: 所有数据(cat_id与category.cat_id关联): 类别表: mingoods(连接查询时作 ...
- mysql连接查询,封装mysql函数
连接查询 交叉连接语法: select * | 字段列表 from 表1 cross join 表2 内连接: select *|字段列表 from 左表 inner join 右表 on 左表. ...
- MySql的连接查询
类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...
- mysql连接查询经典小例题
mysql连接查询: Mysql连接查询支持多表连接 对同一张表可以重复连接多次(别名在多次连接同一张表时很重要) 例题1: 下面有2张表 teams表 比赛结果表:result 问题: 得出一张表: ...
- MySQL查询优化:连接查询排序limit
MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27 个评论 收藏 我要投稿 MySQL查询优化:连接查询排序 ...
- 4.mysql数据库创建,表中创建模具模板脚本,mysql_SQL99标准连接查询(恩,外部连接,全外连接,交叉连接)
mysql数据库创建,表创建模等模板脚本 -- 用root用户登录系统,运行脚本 -- 创建数据库 create database mydb61 character set utf8 ; -- ...
随机推荐
- CentOS下配置iptables防火墙 linux NAT(iptables)配置
CentOS下配置防火墙 配置nat转发服务CentOS下配置iptables防火墙 linux NAT(iptables)配置 CentOS下配置iptables 1,vim /etc/syscon ...
- Android 百度地图开发(二)
这一篇文章主要解说的是百度地图的定位功能,然后还有MyLocationOverlay和PopupOverlay两个地图覆盖物的使用.Overlay是"图层"或"覆盖物&q ...
- java监控工具jstatd-windows
Monitors Java Virtual Machines (JVMs) and enables remote monitoring tools to attach to JVMs. This co ...
- UNP学习笔记(第十三章 守护进程和inetd超级服务器)
关于守护进程可以查看apue的笔记 http://www.cnblogs.com/runnyu/p/4645046.html daemon_init函数 下面给出名为daemon_init函数,通过调 ...
- Oracle无安装客户端安装方法
一. 1)下载Oracle客户端:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.htm ...
- 广告banner:手动滑动切换,自动切换,点击跳转,异步加载网络图片
效果图: 该banner功能有自动切换图片,点击图片可以自定义事件,手动滑动切换,异步加载图片 代码说话: 布局文件: <!-- 广告位 --> <FrameLayout andro ...
- 1.1 合用weightSum属性和layout_weight属性
<打造高质量Android应用:Android开发必知的50个诀窍>第1章活用布局,本章将介绍Android布局相关的一些窍门和建议.通过本章,读者不仅可以学习如何从零开始创建特定类型的布 ...
- HTML5 手机网页制作笔记
http://top.css88.com/archives/546 http://www.w3cfuns.com/blog-5470280-5406828.html 最近在卓手机网页,第一次入手.把要 ...
- 【PHP开发】远程文件(图片)下载
这一篇文章介绍的方法不算原创了,只是引用的别人的文章,加上自己的注释,因为接触php时间不长,所以尝试的东西比较多,自己加的注释也比较简单,php高手请略过. 我要用到远程下载图片,是在做微信公众平台 ...
- java log4j 日志文件
开发中经常会用到log日志文件,根据业务需要可能不产生很大日志文件给维护和[排错带来了麻烦.所以我们希望能够每天或每个月产生一个日志文件,这样文件不至于过大. 或者根据日志文件大小来判断,超过规定大小 ...