mysql_real_connect的概念和使用案例

ops/2025/1/20 22:55:08/

mysql_real_connect 是 MySQL C API 中的一个函数,用于建立一个到 MySQL 数据库服务器的连接。这个函数尝试建立一个到 MySQL 服务器的连接,并返回一个 MYSQL* 类型的指针,这个指针可以用于后续的数据库操作。

函数原型

MYSQL *mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *passwd, const char *db, unsigned int port, const char *unix_socket, unsigned long client_flag);

参数说明

  • mysql: 一个 MYSQL 结构体的指针,该结构体应该已经被 mysql_init 初始化。
  • host: MySQL 服务器的地址,可以是主机名或 IP 地址。
  • user: 连接数据库时使用的用户名。
  • passwd: 连接数据库时使用的密码。
  • db: 要连接的数据库名称。
  • port: MySQL 服务器的端口号,如果为 0,则使用默认端口 3306。
  • unix_socket: 用于连接的 Unix 套接字文件,如果是 NULL,则使用 TCP/IP 连接。
  • client_flag: 客户端标志,用于设置连接选项。

使用案例

以下是一个使用 mysql_real_connect 函数连接到 MySQL 数据库服务器的简单例子:

#include <mysql/mysql.h>
#include <stdio.h>
int main() {MYSQL *conn;MYSQL_RES *res;MYSQL_ROW row;// 初始化一个 MYSQL 对象conn = mysql_init(NULL);// 尝试连接到 MySQL 服务器if (mysql_real_connect(conn, "host", "user", "password", "database", 0, NULL, 0) == NULL) {fprintf(stderr, "%s\n", mysql_error(conn));mysql_close(conn);exit(1);}// 执行一个查询if (mysql_query(conn, "SELECT * FROM table_name")) {fprintf(stderr, "%s\n", mysql_error(conn));mysql_close(conn);exit(1);}// 获取查询结果res = mysql_use_result(conn);// 打印结果集中的每一行while ((row = mysql_fetch_row(res)) != NULL) {printf("%s\n", row[0]);}// 释放结果集并关闭连接mysql_free_result(res);mysql_close(conn);return 0;
}

在这个例子中,我们首先使用 mysql_init 初始化一个 MYSQL 结构体,然后使用 mysql_real_connect 尝试连接到指定的 MySQL 服务器。如果连接成功,我们执行一个查询并获取结果集,然后打印出结果集中的每一行。最后,我们释放结果集并关闭连接。
请注意,在实际使用中,你需要将 "host", "user", "password", 和 "database" 替换为实际的数据库服务器地址、用户名、密码和数据库名。此外,编译此代码时需要链接 MySQL 客户端库。


http://www.ppmy.cn/ops/151776.html

相关文章

vue项目创建与运行(idea)

一、安装vue 在安装完node.js后 使用管理员身份运行命令行&#xff0c;在命令行中&#xff0c;执行如下指令&#xff1a; npm install -g vue/cli 这个过程中&#xff0c;会联网下载&#xff0c;可能会耗时几分钟&#xff0c;耐心等待。 以管理员身份运行cmd检查版本 idea创…

数据结构漫游记:队列的动态模拟实现(C语言)

嘿&#xff0c;各位技术潮人&#xff01;好久不见甚是想念。生活就像一场奇妙冒险&#xff0c;而编程就是那把超酷的万能钥匙。此刻&#xff0c;阳光洒在键盘上&#xff0c;灵感在指尖跳跃&#xff0c;让我们抛开一切束缚&#xff0c;给平淡日子加点料&#xff0c;注入满满的pa…

Flutter ListView进阶:如何实现根据索引值滚动到列表特定位置

在Flutter开发中&#xff0c;ListView是一个非常常用的组件&#xff0c;它允许我们展示一系列的项目。然而&#xff0c;有时候我们需要根据特定的索引值滚动到ListView中的某个项目位置&#xff0c;以便提供更好的用户体验。本文将详细介绍如何在Flutter中实现这一功能。 一、…

c++ string

1 sting 基本概念 string 基本概念 本质&#xff1a;string是c风格的字符串&#xff0c;而string 本质上是一个类string 和char* 的区别&#xff1a; char * 是一个指针 string 是一个类&#xff0c;类内部封装了char*&#xff0c;管理这个字符串&#xff0c;是一个char* 数组…

独立看门狗(IWDG)实验【学习记录】

STM32内部自带了 2个看门狗&#xff1a;独立看门狗&#xff08; IWDG&#xff09;和窗口看门狗 WWDG&#xff09;。 我们将通过按键 WK_UP来喂狗&#xff0c;然后通过 DS0提示复位状态。 10.1 STM32独立看门狗简介 40KHZ低速时钟驱动&#xff0c;是一个内部RC时钟&#xff0…

C语言之装甲车库车辆动态监控辅助记录系统

&#x1f31f; 嗨&#xff0c;我是LucianaiB&#xff01; &#x1f30d; 总有人间一两风&#xff0c;填我十万八千梦。 &#x1f680; 路漫漫其修远兮&#xff0c;吾将上下而求索。 C语言之装甲车库车辆动态监控辅助记录系统 目录 一、前言 1.1 &#xff08;一&#xff09;…

Elasticsearch:Jira 连接器教程第一部分

作者&#xff1a;来自 Elastic Gustavo Llermaly 将我们的 Jira 内容索引到 Elaasticsearch 中以创建统一的数据源并使用文档级别安全性进行搜索。 在本文中&#xff0c;我们将回顾 Elastic Jira 原生连接器的一个用例。我们将使用一个模拟项目&#xff0c;其中一家银行正在开发…

基于单片机的直流电机控制系统(论文+源码)

1 系统方案设计 本设计基于单片机的直流电机控制系统的总体架构设计如图2.1所示&#xff0c;其采用STM32F103单片机作为控制器&#xff0c;结合ESP8266 WiFi通信模块、L9110电机驱动电路、OLED液晶、按键等构成整个系统。用户在使用时&#xff0c;可以通过按键或者手机APP设定直…