c语言连接云服务器mysql,windows连接云服务器

发布时间:2022-11-21

本文目录一览:

  1. C语言怎样连接mysql数据库
  2. mysql与c语言连接,代码求解释。
  3. c语言怎么连接mysql数据库 代码
  4. 用C语言如何对MySQL数据库进行操作

C语言怎样连接mysql数据库

mysql是有c语言接口的,安装相应库后就可以链接了,一般连接mysql的函数是mysql_connect或者mysql_real_connect(大概就是这么拼的吧。。。)可以使用mysql_query执行sql语句。

mysql与c语言连接,代码求解释。

if (!mysql_real_connect(mysql,"localhost", "root", "", "drug management", 3306, NULL, 0)) //判断数据库连接是否成功 if(t) //t是mysql_real_query的返值,使用if来判断sql语句执行是否成功。

c语言怎么连接mysql数据库 代码

//vc工具中添加E:\WAMP\BIN\MYSQL\MYSQL5.5.8\LIB 路径
//在工程设置-》链接》库模块中添加 libmysql.lib
#include stdio.h
#include time.h
#include string.h
#include winsock.h
#include "E:\wamp\bin\mysql\mysql5.5.8\include\mysql.h"
void main(){
    MYSQL *conn;
    MYSQL_RES *res;
    MYSQL_ROW row;
    char *server = "localhost";
    char *user = "root";
    char *password = "";
    char *database = "test";
    char sql[1024] = "select * from chinaren";
    conn = mysql_init(NULL);
    if(!mysql_real_connect(conn, server, user, password, database, 0, NULL, 0)){
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }
    if(mysql_query(conn, sql)){
        fprintf(stderr, "%s\n", mysql_error(conn));
        exit(1);
    }
    res = mysql_use_result(conn);
    while((row = mysql_fetch_row(res)) != NULL){
        printf("%s\n", row[2]);
    }
    mysql_free_result(res);
    mysql_close(conn);
}
#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include windows.h
#endif
#include stdio.h
#include stdlib.h
#include "mysql.h"
//定义数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "show tables;"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
    MYSQL mysql, *handle; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
    MYSQL_RES *result; //查询结果集,结构类型
    MYSQL_FIELD *field ; //包含字段信息的结构
    MYSQL_ROW row ; //存放一行查询结果的字符串数组
    char querysql[160]; //存放查询sql语句字符串
    //初始化
    mysql_init(mysql);
    //连接数据库
    if (!(handle = mysql_real_connect(mysql, "localhost", "user", "pwd", "dbname", 0, NULL, 0))) {
        fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(mysql));
    }
    sprintf(querysql, SELECT_QUERY, atoi(argv[1]));
    //查询数据库
    if(mysql_query(handle, querysql)) {
        fprintf(stderr, "Query failed (%s)\n", mysql_error(handle));
    }
    //存储结果集
    if (!(result = mysql_store_result(handle))) {
        fprintf(stderr, "Couldn't get result from %s\n", mysql_error(handle));
    }
    printf("number of fields returned: %d\n", mysql_num_fields(result));
    //读取结果集的内容
    while (row = mysql_fetch_row(result)) {
        printf("table: %s\n", (((row[0] == NULL) || (!strlen(row[0]))) ? "NULL" : row[0]));
    }
    //释放结果集
    mysql_free_result(result);
    //关闭数据库连接
    mysql_close(handle);
    system("PAUSE");
    //为了兼容大部分的编译器加入此行
    return 0;
}

用C语言如何对MySQL数据库进行操作

有时为了性能,我们会直接用C语言来开发相关的模块,尤其在我们的web应用中,虽然PHP、JSP等脚本均提供了MySQL的接口,但是显然直接使用C语言具有更好的安全性和性能,Michael以前用PHP开发的多个项目中就使用了C语言编写的这类接口,然后再编译到php里面,供php脚本直接使用,这方面的话题就不多说了,下面主要说一下在Linux下如何用C语言连接MySQL数据库,并且读取里面的数据返回,同时如何进行编译。

#if defined(_WIN32) || defined(_WIN64) //为了支持windows平台上的编译
#include windows.h
#endif
#include stdio.h
#include stdlib.h
#include mysql.h //我的机器上该文件在/usr/local/include/mysql下
//定义MySQL数据库操作的宏,也可以不定义留着后面直接写进代码
#define SELECT_QUERY "select username from tbb_user where userid=%d"
int main(int argc, char **argv) //char **argv 相当于 char *argv[]
{
    MYSQL mysql, *sock; //定义数据库连接的句柄,它被用于几乎所有的MySQL函数
    MYSQL_RES *res; //查询结果集,结构类型
    MYSQL_FIELD *fd ; //包含字段信息的结构
    MYSQL_ROW row ; //存放一行查询结果的字符串数组
    char qbuf[160]; //存放查询sql语句字符串
    if(argc != 2){ //检查输入参数
        fprintf(stderr, "usage: mysql_select userid\n\n");
        exit(1);
    }
    mysql_init(mysql);
    if(!(sock = mysql_real_connect(mysql, "localhost", "dbuser", "dbpwd", "9tmd_bbs_utf8", 0, NULL, 0))){
        fprintf(stderr, "Couldn't connect to engine!\n%s\n\n", mysql_error(mysql));
        perror();
        exit(1);
    }
    sprintf(qbuf, SELECT_QUERY, atoi(argv[1]));
    if(mysql_query(sock, qbuf)){
        fprintf(stderr, "Query failed (%s)\n", mysql_error(sock));
        exit(1);
    }
    if(!(res = mysql_store_result(sock))){
        fprintf(stderr, "Couldn't get result from %s\n", mysql_error(sock));
        exit(1);
    }
    printf("number of fields returned: %d\n", mysql_num_fields(res));
    while(row = mysql_fetch_row(res)){
        printf("The userid#%d's username is: %s\n", atoi(argv[1]), (((row[0] == NULL) || (!strlen(row[0]))) ? "NULL" : row[0]));
        puts("query ok!\n");
    }
    mysql_free_result(res);
    mysql_close(sock);
    exit(0);
    return 0; //为了兼容大部分的编译器加入此行
}

编译的时候,使用下面的命令:

gcc -o mysql_select ./mysql_select.c -I/usr/local/include/mysql -L/usr/local/lib/mysql -lmysqlclient (-lz) (-lm) # 后面两个选项可选,根据您的环境情况

运行的时候,执行下面的命令:

./mysql_select 1

将返回如下结果:

number of fields returned: 1
The userid#1's username is: Michael
query ok!

上面的代码我想大部分都能看明白,不明白的可以参考一下MySQL提供的有关C语言API部分文档源码天空,各个函数都有详细说明,有时间我整理一份常用的API说明出来。