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:
- Tải MySQL Connector/C++ từ trang chủ MySQL.
- 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ố.