Maison > Article > base de données > Comment se connecter et utiliser la base de données MySQL en C++
En C++, vous pouvez également utiliser une base de données. Aujourd'hui, nous allons apprendre à vous connecter et à utiliser la base de données MySQL en C++. Les amis dans le besoin peuvent s'y référer.
1. C++ se connecte à la base de données MySQL
Créez d'abord un nouveau projet C++ dans VS, cliquez avec le bouton droit sur le nom du projet et sélectionnez Propriétés.
Sélectionnez la sélection de plate-forme
Sélectionnez Configuration Manager
Sélectionnez Nouveau
Sélectionnez X64 dans le menu déroulant OK
./C++ -> > Répertoire d'inclusion supplémentaire, ajoutez C:Program FilesMySQLMySQL Server 5.5include (sélectionnez en fonction de votre propre répertoire d'installation)
Sélectionnez le répertoire Général-> Ajoutez C:Program FilesMySQLMySQL Server 5.5lib (sélectionnez en fonction de votre propre répertoire d'installation)
Sélectionnez le connecteur -> Entrez -> Ajoutez C:Program FilesMySQLMySQL Server 5.5liblibmysql.lib (sélectionnez en fonction de votre propre répertoire d'installation)
Enfin, copiez la bibliothèque de liens dynamiques libmysql.dll dans le répertoire de génération X64 du projet. Le fichier de bibliothèque de liens dynamiques se trouve dans le répertoire C:Program FilesMySQLMySQL Server 5.5lib
2. Les fonctions API communes de MySQL
mysql_affected_rows() renvoient le nombre de lignes affectées par la dernière requête UPDATE, DELETE ou INSERT.
mysql_close() Ferme une connexion serveur.
mysql_connect() Connectez-vous à un serveur MySQL. Cette fonction est obsolète ; utilisez plutôt mysql_real_connect().
mysql_change_user() modifie l'utilisateur et la base de données sur une connexion ouverte.
mysql_create_db() crée une base de données. Cette fonction n'est pas recommandée ; utilisez plutôt la commande SQL CREATE DATABASE.
mysql_data_seek() recherche une ligne arbitraire dans un ensemble de résultats de requête.
mysql_debug() effectue un DBUG_PUSH avec la chaîne donnée.
mysql_drop_db() Supprime une base de données. Cette fonction n'est pas recommandée ; utilisez plutôt la commande SQL DROP DATABASE.
mysql_dump_debug_info() indique au serveur d'écrire les informations de débogage dans le fichier journal.
mysql_eof() Détermine si la dernière ligne d'un ensemble de résultats a été lue. Cette fonctionnalité est obsolète ; mysql_errno() ou mysql_error() peuvent être utilisés à la place.
mysql_errno() renvoie le numéro d'erreur de la fonction MySQL la plus récemment appelée.
mysql_error() renvoie le message d'erreur de la fonction MySQL la plus récemment appelée.
mysql_escape_string() Échappe les caractères spéciaux utilisés dans les chaînes dans les instructions SQL.
mysql_fetch_field() renvoie le type du champ de table suivant.
mysql_fetch_field_direct() renvoie le type d'un champ de table, donnant un numéro de champ.
mysql_fetch_fields() renvoie un tableau de toutes les structures de champs.
mysql_fetch_lengths() renvoie la longueur de toutes les colonnes de la ligne actuelle.
mysql_fetch_row() obtient la ligne suivante de l'ensemble de résultats.
mysql_field_seek() Placez le curseur de colonne sur une colonne spécifiée.
mysql_field_count() renvoie le nombre de colonnes de résultats de la dernière requête.
mysql_field_tell() renvoie la position du curseur de champ utilisé pour le dernier mysql_fetch_field().
mysql_free_result() libère la mémoire utilisée par un jeu de résultats.
mysql_get_client_info() renvoie les informations sur la version du client.
mysql_get_host_info() renvoie une chaîne décrivant la connexion.
mysql_get_proto_info() renvoie la version du protocole utilisée par la connexion.
mysql_get_server_info() renvoie le numéro de version du serveur.
mysql_info() renvoie des informations sur la requête la plus récemment exécutée.
mysql_init() obtient ou initialise une structure MYSQL.
mysql_insert_id() renvoie l'ID généré par la requête précédente pour une colonne AUTO_INCREMENT.
mysql_kill() Tue un thread donné.
mysql_list_dbs() renvoie les noms de bases de données correspondant à une simple expression régulière.
mysql_list_fields() renvoie les noms de colonnes correspondant à une expression régulière simple.
mysql_list_processes() renvoie une table pour le thread actuel du serveur.
mysql_list_tables() renvoie les noms de tables correspondant à une expression régulière simple.
mysql_num_fields() renvoie le nombre de colonnes dans un jeu de résultats.
mysql_num_rows() renvoie le nombre de lignes dans un jeu de résultats.
mysql_options() définit les options de connexion pour mysql_connect().
mysql_ping() Vérifie si la connexion au serveur fonctionne et se reconnecte si nécessaire.
mysql_query() Exécute une requête SQL spécifiée sous forme de chaîne terminée par un caractère nul.
mysql_real_connect() Connectez-vous à un serveur MySQL.
mysql_real_query() Exécute une requête SQL spécifiée sous forme de chaîne avec un nombre.
mysql_reload() indique au serveur de recharger la table d'autorisation.
mysql_row_seek() recherche une ligne dans l'ensemble de résultats, en utilisant la valeur renvoyée par mysql_row_tell().
mysql_row_tell() renvoie la position du curseur de ligne.
mysql_select_db() se connecte à une base de données.
mysql_shutdown() Arrêtez le serveur de base de données.
mysql_stat() Renvoie l'état du serveur sous forme de chaîne.
mysql_store_result() récupère un ensemble de résultats complet pour le client.
mysql_thread_id() renvoie l'ID du thread actuel.
mysql_use_result() initialise la récupération d'un ensemble de résultats ligne par ligne.
3. C++ utilise la base de données MySQL
Exemple de programme, digérez-le vous-même, si vous ne comprenez pas l'API incluse, juste Google
#define _CRT_SECURE_NO_WARNINGS #include<iostream> #include<windows.h> #include<winsock.h> #include<mysql.h> using namespace std; #pragma comment(lib,"libmysql.lib") #pragma comment(lib,"wsock32.lib") MYSQL *mysql = new MYSQL; //mysql连接 MYSQL_FIELD *fd; //字段列数组 char field[32][32]; //存字段名二维数组 MYSQL_RES *res; //这个结构代表返回行的一个查询结果集 MYSQL_ROW column; //一个行数据的类型安全(type-safe)的表示,表示数据行的列 char query[150]; //查询语句 bool ConnectDatabase(); bool QueryDatabase1(); //bool QueryDatabase2(); int main() { ConnectDatabase(); QueryDatabase1(); //QueryDatabase2(); system("pause"); return 0; } bool ConnectDatabase() { //初始化mysql mysql_init(mysql); //返回false则连接失败,返回true则连接成功 if (!(mysql_real_connect(mysql, "localhost", "root", "123456", "company", 0, NULL, 0))) //中间分别是主机,用户名,密码,数据库名,端口号(可以写默认0或者3306等),可以先写成参数再传进去 { printf("Error connecting to database:%s\n", mysql_error(mysql)); return false; } else { printf("Connected...\n"); return true; } return true; } bool QueryDatabase1() { sprintf_s(query, "select * from t_dept"); //执行查询语句,这里是查询所有,user是表名,不用加引号,用strcpy也可以 mysql_query(mysql, "set names gbk"); //设置编码格式(SET NAMES GBK也行),否则cmd下中文乱码 //返回0 查询成功,返回1查询失败 if (mysql_query(mysql, query)) //执行SQL语句 { printf("Query failed (%s)\n", mysql_error(mysql)); return false; } else { printf("query success\n"); } //获取结果集 if (!(res = mysql_store_result(mysql))) //获得sql语句结束后返回的结果集 { printf("Couldn't get result from %s\n", mysql_error(mysql)); return false; } //打印数据行数 printf("number of dataline returned: %d\n", mysql_affected_rows(mysql)); //获取字段的信息 char *str_field[32]; //定义一个字符串数组存储字段信息 for (int i = 0; iname; } for (int i = 0; i<p>Recommandations d'apprentissage associées : <a href="https://www.php.cn/course/list/51.html" target="_blank">Tutoriel mysql</a>(vidéo)</p></mysql.h></winsock.h></windows.h></iostream>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!