Lấy nội dung từ database MySQL bằng C++

Hướng dẫn chi tiết cách lấy dữ liệu từ database MySQL bằng C++ sử dụng Prepared Statements. Bài viết giúp bạn hiểu cách kết nối, thực hiện truy vấn và xử lý kết quả với MySQL Connector/C++.

Bài viết này sẽ hướng dẫn cách sử dụng Prepared Statements để lấy dữ liệu từ database MySQL bằng ngôn ngữ lập trình C++. Việc sử dụng Prepared Statements giúp truy vấn trở nên an toàn và hiệu quả hơn.

Mã C++

#include <iostream>
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/prepared_statement.h>
#include <cppconn/resultset.h>

int main() {
    try {
        // Kết nối tới MySQL database
        sql::mysql::MySQL_Driver *driver = sql::mysql::get_mysql_driver_instance();
        std::unique_ptr<sql::Connection> con(driver->connect("tcp://127.0.0.1:3306", "username", "password"));

        // Chọn database
        con->setSchema("database_name");

        // Tạo Prepared Statement
        std::unique_ptr<sql::PreparedStatement> pstmt(con->prepareStatement("SELECT id, name, age FROM users WHERE age > ?"));

        // Truyền giá trị tham số
        pstmt->setInt(1, 25);

        // Thực thi truy vấn và lấy kết quả
        std::unique_ptr<sql::ResultSet> res(pstmt->executeQuery());

        // Duyệt qua các hàng dữ liệu và in ra kết quả
        while (res->next()) {
            std::cout << "ID: " << res->getInt("id") << " | "
                      << "Name: " << res->getString("name") << " | "
                      << "Age: " << res->getInt("age") << std::endl;
        }
    } catch (sql::SQLException &e) {
        std::cerr << "Error: " << e.what() << std::endl;
    }

    return 0;
}

Giải thích chi tiết từng dòng code

  • sql::mysql::get_mysql_driver_instance(): Lấy driver MySQL.
  • driver->connect(...): Kết nối tới database MySQL.
  • con->setSchema("database_name"): Chọn database cần thao tác.
  • prepareStatement(...): Tạo Prepared Statement với câu truy vấn.
  • pstmt->setInt(1, 25): Gán giá trị tham số cho câu truy vấn.
  • executeQuery(): Thực thi câu truy vấn và trả về kết quả.
  • res->next(): Duyệt qua từng dòng dữ liệu trả về.

Yêu cầu hệ thống:

  • C++ Compiler (GCC, MSVC, v.v.)
  • MySQL Connector/C++ (Phiên bản 1.1.9 trở lên)
  • MySQL Server 5.7 hoặc 8.0

Cách cài đặt các thư viện để chạy được đoạn mã C++ trên:

  1. Tải MySQL Connector/C++ từ trang chủ MySQL.
  2. Giải nén và cấu hình đường dẫn tới các thư viện khi biên dịch mã nguồn.

Lời khuyên:

  • Luôn sử dụng Prepared Statements để tránh SQL Injection.
  • Kiểm tra lỗi khi kết nối tới database để xử lý sự cố.
Tags: MySQL, C++


Các Hướng Dẫn Cùng Chủ Đề Đang Xem

Xử lý đa luồng trong C++

Hướng dẫn chi tiết cách xử lý đa luồng trong C++ bằng cách sử dụng thư viện `thread`. Bài viết này giúp bạn hiểu cách sử dụng đa luồng để cải thiện hiệu suất xử lý đồng thời trong các tác vụ.
Lấy ký tự cuối cùng của chuỗi trong C++

Hướng dẫn cách lấy ký tự cuối cùng của một chuỗi trong C++ bằng cách sử dụng các phương thức và cú pháp của thư viện `string`. Bài viết giúp bạn hiểu cách xử lý chuỗi và truy xuất ký tự trong C++.
Ví dụ về Strategy Pattern trong C++

Bài viết này giới thiệu về Strategy Pattern trong C++, giải thích cách hoạt động và cung cấp ví dụ minh họa cụ thể giúp bạn hiểu rõ hơn về thiết kế mẫu này trong lập trình hướng đối tượng.
Tạo ứng dụng chat đơn giản sử dụng Socket.IO trong C++

Hướng dẫn cách tạo một ứng dụng chat đơn giản bằng C++ sử dụng Socket.IO, giúp bạn hiểu rõ hơn về lập trình mạng và giao tiếp thời gian thực.
Ví dụ về lập trình hướng đối tượng (OOP) trong C++

Bài viết này cung cấp ví dụ minh họa về lập trình hướng đối tượng (OOP) trong C++, bao gồm các khái niệm như lớp, đối tượng, kế thừa và đa hình.
Chuyển đổi chữ cái Unicode có dấu thành không dấu trong C++

Hướng dẫn chi tiết cách chuyển đổi các chữ cái Unicode có dấu thành chữ không dấu trong C++ bằng cách sử dụng thư viện ``. Bài viết này sẽ giúp bạn xử lý các chuỗi văn bản tiếng Việt một cách hiệu quả hơn.
Các chức năng thường dùng khi sử dụng Selenium Chrome trong C++

Bài viết này sẽ liệt kê các chức năng thường được sử dụng khi làm việc với Selenium Chrome trong C++, giúp người đọc nắm bắt nhanh chóng các thao tác cần thiết cho việc tự động hóa trình duyệt.
Xác thực JSON Web Token (JWT) với C++

Bài viết này sẽ hướng dẫn cách sử dụng JSON Web Token (JWT) trong C++ để xác thực người dùng, bao gồm các bước tạo và xác minh token với các thư viện C++ phổ biến.
Cách truyền Authentication Header Token khi POST dữ liệu tới API bằng C++

Hướng dẫn cách truyền token xác thực thông qua Authentication Header khi gửi yêu cầu POST dữ liệu tới API bằng ngôn ngữ C++. Sử dụng thư viện `libcurl` để thực hiện việc gửi yêu cầu HTTP với token xác thực.
Tạo watermark cho hình ảnh bằng C++

Hướng dẫn cách tạo watermark cho hình ảnh trong C++ bằng cách sử dụng thư viện OpenCV. Bài viết này giúp bạn hiểu cách thêm văn bản hoặc hình ảnh vào một bức ảnh để tạo ra watermark.

Đã thêm vào giỏ hàng