使用C操作MySQL数据库(vs 2008)
最近几天闲来无事,便尝试了一下用C操作数据库,下面便是我测试的具体结果:
开发环境是windows 7 ultimate(英文版) IDE 是vs 2008 professional 中文版,数据库是mysql 5.1
首先,我在MySQL库中创建了一个test表:
CREATE TABLE `test` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`age` int(3) DEFAULT NULL,
`gender` char(1) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8
然后,要配置好vs 2008下的开发环境:
工具->选项->项目和解决方案->vc++目录
1. 在窗口右边添加包含文件(我的是D:\Program Files\MySQL\MySQL Server 5.1\include)
2.添加库文件(D:\Program Files\MySQL\MySQL Server 5.1\lib\opt)
配置好后,即可创建新的工程了。下面便是我的测试代码,注释比较详细,我这里就不做过多的介绍了。
注释大多数都是我翻译了英文文档,英文好的可以直接参考MySQL的官方文档。
MySQL官网:www.mysql.com
#include <iostream>
#include <windows.h>
#include <stdio.h>
#include "mysql.h"
//非常重要
#pragma comment(lib, "libmysql.lib")
using namespace std;
int main() {
MYSQL *mysql;
MYSQL_RES *result;
MYSQL_ROW row;
unsigned int field_count;
unsigned int num_fields;
my_ulonglong affected_rows;
const char* selectString = "SELECT name,age,gender from test";
const char* updateString = "UPDATE test SET age=30 WHERE id=4";
const char* deleteString = "DELETE from test WHERE id=4";
const char* insertString = "INSERT INTO test VALUES(null,'zhaoliu',24,'m')";
const char* mutilExecution = "INSERT INTO test VALUES(null,'zhaoliu',24,'m');DELETE from test WHERE id=4";
/*
MYSQL *mysql_init(MYSQL *mysql)
函数描述:
分配或初始化一个适合mysql_real_connect()函数的MYSQL对象。如果mysql是空指针,则函数分配并初始化
一个新的MYSQL对象,作为返回值返回。否则,直接初始化对象,并返回对象的地址。如果用mysql_init()函数
初始化了一个新的对象,则在调用mysql_clos
相关文档:
什么是结构体?
简单的来说,结构体就是一个可以包含不同数据类型的一个结构,它是一种可以自己定义的数据类型,它的特点和数组主要有
两点不同,首先结构体可以
在一个结构中声明不同的数据类型,第二相同结构的结构体变量是可以相互赋值的,而数组是做不到的,因为数组是单一数据类型的数据集合,它本身不是数据类型 ......
http://www.cnblogs.com/rethink/archive/2009/10/09/1579634.html
mysql cache功能分析:
1
mysql的cache功能的key的生成原理是:把select语句按照一定的hash规则生成唯一的key,select的结果生成value,即key=>value。所以对于cache而言,select语句是区分大小写的,也区分空格的。两个select语句必须完完全全一致 ......
题目:给定一个分割符,怎样得到给定字符串最后一个分割符后的字符串。 如:‘fsb-ibees-zxj-fsbk’ 怎样得到fsbk, 要求:java实现,sql实现?sql可以是oracle,mysql等实现。
1.Oracle实现
SET SERVEROUTPUT ON;
DECLARE
str VARCHAR2(266):='123-890-ibees-zxj';--被解析的字符串
splitStr VARCH ......