别人安odbc驱动和配置毕竟不方便
搜索有的说可以安装其他软件,但那个不是免费的。
有什么好办法吗?
14 个解决方案
#1
可以不安装,你直接下载一个MYSQL然后将其中的MYSQL.exe 复制出来,就可以去连接MYSQL数据库了。
#2
用ado、Mysql的API(http://download.csdn.net/source/325189)
示例:
include <stdio.h>
#include <windows.h>
#include "D:/service/mysql/include/mysql.h"
#pragma comment(lib,"D:/service/mysql/lib/opt/libmysql.lib")
#define host "localhost"
#define username "root"
#define password "root"
#define database "test"
//MySQL的连接句柄
MYSQL *CONN;
int main()
{
//查询结果指针
MYSQL_RES *res;
//保存行数据
MYSQL_ROW row;
//字段信息指针
MYSQL_FIELD *field;
my_ulonglong num_rows;
unsigned int i,ret,num_fields,errno;
const char *character,*error;
//初始化MySQL结构
CONN = mysql_init(NULL);
//设置MySQLde 连接选项
ret = mysql_options(CONN, MYSQL_SET_CHARSET_NAME, "UTF8");
//连接到MySQL服务器
mysql_real_connect(CONN,host,username,password,database,0,NULL,0);
//返回默认字符集
character = mysql_character_set_name(CONN);
printf("set_name:\t=%s\n",character);
//创建数据库
mysql_query(CONN,"CREATE DATABASE IF NOT EXISTS `tests`");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//创建表
mysql_query(CONN,"create table `demo`( `id` int NOT NULL , `first_name` char(30) , `last_name` char(30) , `age` tinyint , `gender` tinyint , `job` char(30) , PRIMARY KEY (`id`))");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//执行插入语句
mysql_query(CONN,"INSERT INTO `demo` (`first_name`,`last_name`,`age`,`gender`,`job`) VALUES ('Gan','Forest',20,1,'worker')");
num_rows = mysql_affected_rows(CONN);
printf("insert rows:\t=%d\n",num_rows);
//执行查询语句
mysql_query(CONN,"SELECT * FROM demo");
//获得查询结果
res = mysql_store_result(CONN);
//获得查询结果的行数
num_rows = mysql_num_rows(res);
printf("select rows:\t=%d\n",num_rows);
//获得查询结果的列数
num_fields = mysql_num_fields(res);
//或者使用该函数
//num_fields = mysql_field_count(CONN);
printf("select fields:\t=%d\n",num_fields);
//获取查询结果的字段信息
printf("result fields:\n");
while((field = mysql_fetch_field(res)))
{
printf("\t%s", field->name);
}
printf("\n");
//根据编号返回字段
printf("result fields type:\n");
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("\t%s",field->name);
}
printf("\n");
//获取查询结果
printf("result:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
for (i=0; i<num_fields; i++)
{
printf("\t%s",row[i] != NULL ? row[i] : "NULL");
}
printf("\n");
}
//关闭MySQL连接
mysql_close(CONN);
return 0;
}
示例:
include <stdio.h>
#include <windows.h>
#include "D:/service/mysql/include/mysql.h"
#pragma comment(lib,"D:/service/mysql/lib/opt/libmysql.lib")
#define host "localhost"
#define username "root"
#define password "root"
#define database "test"
//MySQL的连接句柄
MYSQL *CONN;
int main()
{
//查询结果指针
MYSQL_RES *res;
//保存行数据
MYSQL_ROW row;
//字段信息指针
MYSQL_FIELD *field;
my_ulonglong num_rows;
unsigned int i,ret,num_fields,errno;
const char *character,*error;
//初始化MySQL结构
CONN = mysql_init(NULL);
//设置MySQLde 连接选项
ret = mysql_options(CONN, MYSQL_SET_CHARSET_NAME, "UTF8");
//连接到MySQL服务器
mysql_real_connect(CONN,host,username,password,database,0,NULL,0);
//返回默认字符集
character = mysql_character_set_name(CONN);
printf("set_name:\t=%s\n",character);
//创建数据库
mysql_query(CONN,"CREATE DATABASE IF NOT EXISTS `tests`");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//创建表
mysql_query(CONN,"create table `demo`( `id` int NOT NULL , `first_name` char(30) , `last_name` char(30) , `age` tinyint , `gender` tinyint , `job` char(30) , PRIMARY KEY (`id`))");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//执行插入语句
mysql_query(CONN,"INSERT INTO `demo` (`first_name`,`last_name`,`age`,`gender`,`job`) VALUES ('Gan','Forest',20,1,'worker')");
num_rows = mysql_affected_rows(CONN);
printf("insert rows:\t=%d\n",num_rows);
//执行查询语句
mysql_query(CONN,"SELECT * FROM demo");
//获得查询结果
res = mysql_store_result(CONN);
//获得查询结果的行数
num_rows = mysql_num_rows(res);
printf("select rows:\t=%d\n",num_rows);
//获得查询结果的列数
num_fields = mysql_num_fields(res);
//或者使用该函数
//num_fields = mysql_field_count(CONN);
printf("select fields:\t=%d\n",num_fields);
//获取查询结果的字段信息
printf("result fields:\n");
while((field = mysql_fetch_field(res)))
{
printf("\t%s", field->name);
}
printf("\n");
//根据编号返回字段
printf("result fields type:\n");
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("\t%s",field->name);
}
printf("\n");
//获取查询结果
printf("result:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
for (i=0; i<num_fields; i++)
{
printf("\t%s",row[i] != NULL ? row[i] : "NULL");
}
printf("\n");
}
//关闭MySQL连接
mysql_close(CONN);
return 0;
}
#3
第3章:教程
目录
3.1. 连接与断开服务器
3.2. 输入查询
3.3. 创建并使用数据库
3.3.1. 创建并选择数据库
3.3.2. 创建表
3.3.3. 将数据装入表中
3.3.4. 从表检索信息
3.4. 获得数据库和表的信息
3.5. 在批处理模式下使用mysql
3.6. 常用查询的例子
3.6.1. 列的最大值
3.6.2. 拥有某个列的最大值的行
3.6.3. 列的最大值:按组
3.6.4. 拥有某个字段的组间最大值的行
3.6.5. 使用用户变量
3.6.6. 使用外键
3.6.7. 根据两个键搜索
3.6.8. 根据天计算访问量
3.6.9. 使用AUTO_INCREMENT
3.7. 孪生项目的查询
3.7.1. 查找所有未分发的孪生项
3.7.2. 显示孪生对状态的表
3.8. 与Apache一起使用MySQL
本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。本章将介绍使用mysql的两个方法。
要想查看由mysql提供的选择项目表,可以用--help选项来调用:
shell> mysql --help
本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器可以连接。否则,请联络MySQL管理员。(如果你是管理员,则需要查阅本手册的其它章节,例如第5章:数据库管理。)
本章描述建立和使用一个数据库的全过程。如果你仅仅对访问一个已经存在的数据库感兴趣,可以跳过描述怎样创建数据库及它所包含的表的章节。
由于本章是一个教程,省略了许多细节。关于这里所涉及的主题的详细信息,请查阅本手册的相关章节。
3.1. 连接与断开服务器
为了连接服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个 密码。如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:
shell> mysql -h host -u user -p
Enter password: ********
host和user分别代表MySQL服务器运行的主机名和MySQL账户用户名。设置时替换为正确的值。******** 代表你的密码;当mysql显示Enter password:提示时输入它。
如果有效,你应该看见mysql>提示符后的一些介绍信息:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.1.2-alpha-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> 提示符告诉你mysql准备为你输入命令。
一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你的机器是这种情况,你应该能不带任何选项地调用mysql与该服务器连接:
shell> mysql
成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出:
mysql> QUIT
Bye
在Unix中,也可以按control-D键断开服务器。
在下列章节的大多数例子都假设你连接到了服务器。由mysql>提示指明。
3.2. 输入查询
确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择
目录
3.1. 连接与断开服务器
3.2. 输入查询
3.3. 创建并使用数据库
3.3.1. 创建并选择数据库
3.3.2. 创建表
3.3.3. 将数据装入表中
3.3.4. 从表检索信息
3.4. 获得数据库和表的信息
3.5. 在批处理模式下使用mysql
3.6. 常用查询的例子
3.6.1. 列的最大值
3.6.2. 拥有某个列的最大值的行
3.6.3. 列的最大值:按组
3.6.4. 拥有某个字段的组间最大值的行
3.6.5. 使用用户变量
3.6.6. 使用外键
3.6.7. 根据两个键搜索
3.6.8. 根据天计算访问量
3.6.9. 使用AUTO_INCREMENT
3.7. 孪生项目的查询
3.7.1. 查找所有未分发的孪生项
3.7.2. 显示孪生对状态的表
3.8. 与Apache一起使用MySQL
本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。本章将介绍使用mysql的两个方法。
要想查看由mysql提供的选择项目表,可以用--help选项来调用:
shell> mysql --help
本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器可以连接。否则,请联络MySQL管理员。(如果你是管理员,则需要查阅本手册的其它章节,例如第5章:数据库管理。)
本章描述建立和使用一个数据库的全过程。如果你仅仅对访问一个已经存在的数据库感兴趣,可以跳过描述怎样创建数据库及它所包含的表的章节。
由于本章是一个教程,省略了许多细节。关于这里所涉及的主题的详细信息,请查阅本手册的相关章节。
3.1. 连接与断开服务器
为了连接服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个 密码。如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:
shell> mysql -h host -u user -p
Enter password: ********
host和user分别代表MySQL服务器运行的主机名和MySQL账户用户名。设置时替换为正确的值。******** 代表你的密码;当mysql显示Enter password:提示时输入它。
如果有效,你应该看见mysql>提示符后的一些介绍信息:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.1.2-alpha-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> 提示符告诉你mysql准备为你输入命令。
一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你的机器是这种情况,你应该能不带任何选项地调用mysql与该服务器连接:
shell> mysql
成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出:
mysql> QUIT
Bye
在Unix中,也可以按control-D键断开服务器。
在下列章节的大多数例子都假设你连接到了服务器。由mysql>提示指明。
3.2. 输入查询
确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择
#4
是在语言中连接MYSQL?
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
#5
是在语言中连接MYSQL?
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
#6
api要修改太多,有用adodb而不用odbc的方法吗?
#7
可以 ,
http://dev.mysql.com/doc/refman/5.1/zh/connectors.html#connector-net
http://dev.mysql.com/doc/refman/5.1/zh/connectors.html#connector-net
#8
如果你是用的.NET,则可以直接用它的 .net 的CONNECTOR,直接引用它的 MySql.Data.dll 就可以了。
#9
DRIVER={MySQL Connector/ODBC v5}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
也用用到ODBC驱动
也用用到ODBC驱动
#11
这样没有连通
DRIVER={MySQL Connector/ODBC v5.1}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
这样连通了
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
为什么呢?
#12
连接字串有问题,DRIVER={MySQL ODBC 5.1 Driver}是正确的,也是用到了ODBC驱动
or
Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=zz;USER=root;Pwd=123;
#13
在开发中连接MYSQL 跟语言有关吧,但是ODBC是通用的,PHP中有很多方式可以连接PHP,它有几套API都可以连接MYSQL 面向过程的以mysql开头的API,面向对象的有PDO 和mysqli另外其他的框架比如thinkphp已经给你封装好了连接的过程,你只看到一些操作函数
#14
方式可以连接PHP,连接mysql
#1
可以不安装,你直接下载一个MYSQL然后将其中的MYSQL.exe 复制出来,就可以去连接MYSQL数据库了。
#2
用ado、Mysql的API(http://download.csdn.net/source/325189)
示例:
include <stdio.h>
#include <windows.h>
#include "D:/service/mysql/include/mysql.h"
#pragma comment(lib,"D:/service/mysql/lib/opt/libmysql.lib")
#define host "localhost"
#define username "root"
#define password "root"
#define database "test"
//MySQL的连接句柄
MYSQL *CONN;
int main()
{
//查询结果指针
MYSQL_RES *res;
//保存行数据
MYSQL_ROW row;
//字段信息指针
MYSQL_FIELD *field;
my_ulonglong num_rows;
unsigned int i,ret,num_fields,errno;
const char *character,*error;
//初始化MySQL结构
CONN = mysql_init(NULL);
//设置MySQLde 连接选项
ret = mysql_options(CONN, MYSQL_SET_CHARSET_NAME, "UTF8");
//连接到MySQL服务器
mysql_real_connect(CONN,host,username,password,database,0,NULL,0);
//返回默认字符集
character = mysql_character_set_name(CONN);
printf("set_name:\t=%s\n",character);
//创建数据库
mysql_query(CONN,"CREATE DATABASE IF NOT EXISTS `tests`");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//创建表
mysql_query(CONN,"create table `demo`( `id` int NOT NULL , `first_name` char(30) , `last_name` char(30) , `age` tinyint , `gender` tinyint , `job` char(30) , PRIMARY KEY (`id`))");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//执行插入语句
mysql_query(CONN,"INSERT INTO `demo` (`first_name`,`last_name`,`age`,`gender`,`job`) VALUES ('Gan','Forest',20,1,'worker')");
num_rows = mysql_affected_rows(CONN);
printf("insert rows:\t=%d\n",num_rows);
//执行查询语句
mysql_query(CONN,"SELECT * FROM demo");
//获得查询结果
res = mysql_store_result(CONN);
//获得查询结果的行数
num_rows = mysql_num_rows(res);
printf("select rows:\t=%d\n",num_rows);
//获得查询结果的列数
num_fields = mysql_num_fields(res);
//或者使用该函数
//num_fields = mysql_field_count(CONN);
printf("select fields:\t=%d\n",num_fields);
//获取查询结果的字段信息
printf("result fields:\n");
while((field = mysql_fetch_field(res)))
{
printf("\t%s", field->name);
}
printf("\n");
//根据编号返回字段
printf("result fields type:\n");
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("\t%s",field->name);
}
printf("\n");
//获取查询结果
printf("result:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
for (i=0; i<num_fields; i++)
{
printf("\t%s",row[i] != NULL ? row[i] : "NULL");
}
printf("\n");
}
//关闭MySQL连接
mysql_close(CONN);
return 0;
}
示例:
include <stdio.h>
#include <windows.h>
#include "D:/service/mysql/include/mysql.h"
#pragma comment(lib,"D:/service/mysql/lib/opt/libmysql.lib")
#define host "localhost"
#define username "root"
#define password "root"
#define database "test"
//MySQL的连接句柄
MYSQL *CONN;
int main()
{
//查询结果指针
MYSQL_RES *res;
//保存行数据
MYSQL_ROW row;
//字段信息指针
MYSQL_FIELD *field;
my_ulonglong num_rows;
unsigned int i,ret,num_fields,errno;
const char *character,*error;
//初始化MySQL结构
CONN = mysql_init(NULL);
//设置MySQLde 连接选项
ret = mysql_options(CONN, MYSQL_SET_CHARSET_NAME, "UTF8");
//连接到MySQL服务器
mysql_real_connect(CONN,host,username,password,database,0,NULL,0);
//返回默认字符集
character = mysql_character_set_name(CONN);
printf("set_name:\t=%s\n",character);
//创建数据库
mysql_query(CONN,"CREATE DATABASE IF NOT EXISTS `tests`");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//创建表
mysql_query(CONN,"create table `demo`( `id` int NOT NULL , `first_name` char(30) , `last_name` char(30) , `age` tinyint , `gender` tinyint , `job` char(30) , PRIMARY KEY (`id`))");
if(errno=mysql_errno(CONN)!=0){
error = mysql_error(CONN);
printf("MySQL ERROR [%d]:%s\n",errno,error);
}
//执行插入语句
mysql_query(CONN,"INSERT INTO `demo` (`first_name`,`last_name`,`age`,`gender`,`job`) VALUES ('Gan','Forest',20,1,'worker')");
num_rows = mysql_affected_rows(CONN);
printf("insert rows:\t=%d\n",num_rows);
//执行查询语句
mysql_query(CONN,"SELECT * FROM demo");
//获得查询结果
res = mysql_store_result(CONN);
//获得查询结果的行数
num_rows = mysql_num_rows(res);
printf("select rows:\t=%d\n",num_rows);
//获得查询结果的列数
num_fields = mysql_num_fields(res);
//或者使用该函数
//num_fields = mysql_field_count(CONN);
printf("select fields:\t=%d\n",num_fields);
//获取查询结果的字段信息
printf("result fields:\n");
while((field = mysql_fetch_field(res)))
{
printf("\t%s", field->name);
}
printf("\n");
//根据编号返回字段
printf("result fields type:\n");
for(i = 0; i < num_fields; i++)
{
field = mysql_fetch_field_direct(res, i);
printf("\t%s",field->name);
}
printf("\n");
//获取查询结果
printf("result:\n");
while ((row = mysql_fetch_row(res)) != NULL)
{
for (i=0; i<num_fields; i++)
{
printf("\t%s",row[i] != NULL ? row[i] : "NULL");
}
printf("\n");
}
//关闭MySQL连接
mysql_close(CONN);
return 0;
}
#3
第3章:教程
目录
3.1. 连接与断开服务器
3.2. 输入查询
3.3. 创建并使用数据库
3.3.1. 创建并选择数据库
3.3.2. 创建表
3.3.3. 将数据装入表中
3.3.4. 从表检索信息
3.4. 获得数据库和表的信息
3.5. 在批处理模式下使用mysql
3.6. 常用查询的例子
3.6.1. 列的最大值
3.6.2. 拥有某个列的最大值的行
3.6.3. 列的最大值:按组
3.6.4. 拥有某个字段的组间最大值的行
3.6.5. 使用用户变量
3.6.6. 使用外键
3.6.7. 根据两个键搜索
3.6.8. 根据天计算访问量
3.6.9. 使用AUTO_INCREMENT
3.7. 孪生项目的查询
3.7.1. 查找所有未分发的孪生项
3.7.2. 显示孪生对状态的表
3.8. 与Apache一起使用MySQL
本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。本章将介绍使用mysql的两个方法。
要想查看由mysql提供的选择项目表,可以用--help选项来调用:
shell> mysql --help
本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器可以连接。否则,请联络MySQL管理员。(如果你是管理员,则需要查阅本手册的其它章节,例如第5章:数据库管理。)
本章描述建立和使用一个数据库的全过程。如果你仅仅对访问一个已经存在的数据库感兴趣,可以跳过描述怎样创建数据库及它所包含的表的章节。
由于本章是一个教程,省略了许多细节。关于这里所涉及的主题的详细信息,请查阅本手册的相关章节。
3.1. 连接与断开服务器
为了连接服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个 密码。如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:
shell> mysql -h host -u user -p
Enter password: ********
host和user分别代表MySQL服务器运行的主机名和MySQL账户用户名。设置时替换为正确的值。******** 代表你的密码;当mysql显示Enter password:提示时输入它。
如果有效,你应该看见mysql>提示符后的一些介绍信息:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.1.2-alpha-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> 提示符告诉你mysql准备为你输入命令。
一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你的机器是这种情况,你应该能不带任何选项地调用mysql与该服务器连接:
shell> mysql
成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出:
mysql> QUIT
Bye
在Unix中,也可以按control-D键断开服务器。
在下列章节的大多数例子都假设你连接到了服务器。由mysql>提示指明。
3.2. 输入查询
确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择
目录
3.1. 连接与断开服务器
3.2. 输入查询
3.3. 创建并使用数据库
3.3.1. 创建并选择数据库
3.3.2. 创建表
3.3.3. 将数据装入表中
3.3.4. 从表检索信息
3.4. 获得数据库和表的信息
3.5. 在批处理模式下使用mysql
3.6. 常用查询的例子
3.6.1. 列的最大值
3.6.2. 拥有某个列的最大值的行
3.6.3. 列的最大值:按组
3.6.4. 拥有某个字段的组间最大值的行
3.6.5. 使用用户变量
3.6.6. 使用外键
3.6.7. 根据两个键搜索
3.6.8. 根据天计算访问量
3.6.9. 使用AUTO_INCREMENT
3.7. 孪生项目的查询
3.7.1. 查找所有未分发的孪生项
3.7.2. 显示孪生对状态的表
3.8. 与Apache一起使用MySQL
本章通过演示如何使用mysql客户程序创造和使用一个简单的数据库,提供一个MySQL的入门教程。mysql(有时称为“终端监视器”或只是“监视”)是一个交互式程序,允许你连接一个MySQL服务器,运行查询并察看结果。mysql可以用于批模式:你预先把查询放在一个文件中,然后告诉mysql执行文件的内容。本章将介绍使用mysql的两个方法。
要想查看由mysql提供的选择项目表,可以用--help选项来调用:
shell> mysql --help
本章假定mysql已经被安装在你的机器上,并且有一个MySQL服务器可以连接。否则,请联络MySQL管理员。(如果你是管理员,则需要查阅本手册的其它章节,例如第5章:数据库管理。)
本章描述建立和使用一个数据库的全过程。如果你仅仅对访问一个已经存在的数据库感兴趣,可以跳过描述怎样创建数据库及它所包含的表的章节。
由于本章是一个教程,省略了许多细节。关于这里所涉及的主题的详细信息,请查阅本手册的相关章节。
3.1. 连接与断开服务器
为了连接服务器,当调用mysql时,通常需要提供一个MySQL用户名并且很可能需要一个 密码。如果服务器运行在登录服务器之外的其它机器上,还需要指定主机名。联系管理员以找出进行连接所使用的参数 (即,连接的主机、用户名和使用的密码)。知道正确的参数后,可以按照以下方式进行连接:
shell> mysql -h host -u user -p
Enter password: ********
host和user分别代表MySQL服务器运行的主机名和MySQL账户用户名。设置时替换为正确的值。******** 代表你的密码;当mysql显示Enter password:提示时输入它。
如果有效,你应该看见mysql>提示符后的一些介绍信息:
shell> mysql -h host -u user -p
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 25338 to server version: 5.1.2-alpha-standard
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>
mysql> 提示符告诉你mysql准备为你输入命令。
一些MySQL安装允许用户以匿名(未命名)用户连接到本地主机上运行的服务器。如果你的机器是这种情况,你应该能不带任何选项地调用mysql与该服务器连接:
shell> mysql
成功地连接后,可以在mysql>提示下输入QUIT (或\q)随时退出:
mysql> QUIT
Bye
在Unix中,也可以按control-D键断开服务器。
在下列章节的大多数例子都假设你连接到了服务器。由mysql>提示指明。
3.2. 输入查询
确保你连接上了服务器,如在先前的章节讨论的。连接上服务器并布代表选择
#4
是在语言中连接MYSQL?
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
#5
是在语言中连接MYSQL?
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
如是,一般安装MYSQL的ODBC OR 用MYSQL的API,示例:
#include <mysql.h>
#include <stdio.h>
int main(void) {
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
/* db configure*/
char *server = "127.0.0.1";
char *user = "root";
char *password = "";
char *database = "test";
int port=3314;
conn = mysql_init(NULL);
/* Connect to database */
if (!mysql_real_connect(conn, server,
user, password, database, port, NULL, 0)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
/* send SQL query */
if (mysql_query(conn, "select * from ndb_test")) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(0);
}
res = mysql_use_result(conn);
/* output table name */
printf("MySQL Tables in mysql database:\n");
while ((row = mysql_fetch_row(res)) != NULL)
printf("%s - %s \n", row[0],row[1]);
/* close connection */
mysql_free_result(res);
mysql_close(conn);
return 0;
}
复制代码
#6
api要修改太多,有用adodb而不用odbc的方法吗?
#7
可以 ,
http://dev.mysql.com/doc/refman/5.1/zh/connectors.html#connector-net
http://dev.mysql.com/doc/refman/5.1/zh/connectors.html#connector-net
#8
如果你是用的.NET,则可以直接用它的 .net 的CONNECTOR,直接引用它的 MySql.Data.dll 就可以了。
#9
DRIVER={MySQL Connector/ODBC v5}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
也用用到ODBC驱动
也用用到ODBC驱动
#10
#11
这样没有连通
DRIVER={MySQL Connector/ODBC v5.1}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
这样连通了
DRIVER={MySQL ODBC 5.1 Driver}; SERVER=data.domain.com; PORT=3306; DATABASE=myDatabase; UID=myUsername; PASSWORD=myPassword;OPTION=3
为什么呢?
#12
连接字串有问题,DRIVER={MySQL ODBC 5.1 Driver}是正确的,也是用到了ODBC驱动
or
Driver={MySQL ODBC 5.1 Driver};Server=localhost;Port=3306;Database=zz;USER=root;Pwd=123;
#13
在开发中连接MYSQL 跟语言有关吧,但是ODBC是通用的,PHP中有很多方式可以连接PHP,它有几套API都可以连接MYSQL 面向过程的以mysql开头的API,面向对象的有PDO 和mysqli另外其他的框架比如thinkphp已经给你封装好了连接的过程,你只看到一些操作函数
#14
方式可以连接PHP,连接mysql