C++ stellt zu Ihrer Information eine Verbindung zu MySQL her. Die spezifischen Inhalte sind wie folgt Definieren der MySQLCon-Klasse Klasse MySQLCon { MySQLmysql; öffentlich: int Fehlernummer; Zeichenfolge Fehlertext; öffentlich: //MySQLCon() initialisieren); //Datenbank schließen~MySQLCon(); //Mit Datenbank verbinden bool OpenConn(const char* host,const char* username,const char* pwd,const char* dbName,unsigned port=0); void GetErrorText();//Fehlertext abrufen void Close();//Datenbank schließen bool ExecuteSQL(const char* sql);//SQL-Anweisung verwenden, Daten können nicht empfangen werden bool QureySQL(const char* sql, vector<vector<string>>& resultSet);//SQL-Anweisung verwenden und Daten empfangen (Select-Anweisung) }; Initialisierungsvorgang MySQLCon::MySQLCon() { wenn (mysql_library_init(0, nullptr, nullptr)) { cout << "CAPI-Initialisierung fehlgeschlagen" << std::endl; getchar(); Ausgang (1); } wenn (mysql_init(&mysql)==nullptr) { cout << "Datenbankvariablen konnten nicht initialisiert werden" << std::endl; getchar(); Ausgang (1); } wenn (mysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk")) { cout << "Verbindungsoptionen konnten nicht festgelegt werden" << std::endl; getchar(); Ausgang (1); } } Herstellen einer Verbindung zum MySQL-Server //Die Parameter sind Host, Benutzername, Passwort, Datenbankname, Portnummer bool MySQLCon::OpenConn(const char* Host, const char* Benutzername, const char* Pwd, const char* dbName, unsigned Port) { //Verbindung zur Datenbank herstellen, wenn (mysql_real_connect(&mysql, Host, Benutzername, Passwort, Datenbankname, Port, nullptr, 0)==nullptr) { cout << "Verbindung zum MySQL-Server konnte nicht hergestellt werden" << std::endl; //Fehlertext abrufen GetErrorText(); Ausgang (1); gibt false zurück; } gibt true zurück; } MySQL-Fehlerinformationen abrufen void MySQLCon::GetErrorText() { //Fehlercode abrufen errornum = mysql_errno(&mysql); //Fehlertext abrufen errortext = mysql_error(&mysql); //Fehlercode drucken cout << "error num: " << errornum << std::endl; //Fehlertext drucken cout << "Fehlertext: " << Fehlertext << std::endl; getchar(); } Verwenden von SQL-Anweisungen in C++ bool MySQLCon::ExecuteSQL(const char* sql) { //SQL-Anweisung verwenden, aber keine Daten empfangen, wenn (mysql_real_query(&mysql, sql, strlen(sql))) { GetErrorText(); gibt false zurück; } gibt true zurück; } bool MySQLCon::QureySQL(const char* sql, Vektor<Vektor<Zeichenfolge>>& Ergebnismenge) { //SQL-Anweisungen verwenden und Daten in Vektorcontainer empfangen, wenn (mysql_real_query(&mysql, sql, strlen(sql))) { GetErrorText(); gibt false zurück; } //Erstellen Sie einen MYSQL-Ergebnissatz MYSQL_RES* result = mysql_store_result(&mysql); //Gesamtzahl der Zeilen und Spalten abrufen unsigned int rows = mysql_num_rows(result); unsigned int cols = mysql_num_fields(Ergebnis); // Wird verwendet, um ein Datenstück im Ergebnissatz MYSQL_ROW row aufzuzeichnen; während (Zeile = mysql_fetch_row(Ergebnis)) { //Erstellen Sie einen Vektorcontainer, um die Daten im Zeilenvektor <string> lineDate zu speichern. für (int i = 0; i < Spalten; i++) { wenn (Zeile[i]) { //Speichere die Daten jeder Spalte in der Zeile in lineDate lineDate.push_back(row[i]); } anders { lineDate.push_back(""); } } //Gesamte Datenzeile im resultSet speichern resultSet.push_back(lineDate); } //Das Ergebnis freigeben setmysql_free_result(result); gibt true zurück; } Schließen Sie die Datenbank void MySQLCon::Close() { mysql_close(&mysql); } MySQLCon::~MySQLCon() { Schließen(); mysql_library_end(); } Beispiel Hauptfunktion int main() { MySQLCon c_apiconn; c_apiconn.OpenConn("127.0.0.1", "root", "136119", "fancy"); Zeichenfolge SQL = "Verwenden Sie Fancy;" Vektor<Vektor<Zeichenfolge>> Daten; c_apiconn.ExecuteSQL(sql.c_str()); sql = "Wählen Sie * aus fancy.info;"; c_apiconn.QureySQL(sql.c_str(), Daten); für (int i = 0; i < data.size(); i++) { für (int j = 0; j < data[i].size(); j++) { cout << Daten[i][j] << "\t"; } cout << endl; } gebe 0 zurück; } Ausgabe Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: 22 Vue-Optimierungstipps (Projektpraxis)
Inhaltsverzeichnis 1. Standort / Matching 2. Stan...
Inhaltsverzeichnis PXE implementiert die unbeaufs...
Die Verbindungsmethode in der MySQL-Tabelle ist e...
1. Schalten Sie die Firewall aus und übertragen S...
Inhaltsverzeichnis 1. Funktionseinführung 2. Schl...
Ein Designsoldat fragte: „Kann ich nur reines Des...
Symptome: Nach dem Hinzufügen des Parameters -v z...
Ich hatte nicht vor, diesen Blog zu schreiben, ab...
In diesem Artikel erfahren Sie, wie Sie mysql5.7....
Eine Transaktion ist eine logische Gruppe von Ope...
Inhaltsverzeichnis Einführung Frage Design 1: Adj...
In Entwicklungsprojekten können wir SQL mit Effiz...
Inhaltsverzeichnis 1. Übergeordnete Komponenten u...
Deinstallieren Sie die installierte Version auf U...
Einführung: In vielen Fällen denken viele Leute, ...