Chức năng của api mysql là gì?
Đây là bài hướng dẫn lập trình C cho cơ sở dữ liệu MySQL. Nó bao gồm những điều cơ bản về lập trình MySQL với API C. Bạn cũng có thể cân nhắc xem hướng dẫn về MySQL trên ZetCode Show
Về cơ sở dữ liệu MySQLMySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở hàng đầu. Nó là một hệ thống quản lý cơ sở dữ liệu đa người dùng, đa luồng. MySQL đặc biệt phổ biến trên web. MySQL hiện thuộc sở hữu của Oracle. Cơ sở dữ liệu MySQL có sẵn trên hầu hết các nền tảng hệ điều hành quan trọng. Nó chạy trên BSD Unix, Linux, Windows hoặc Mac OS MariaDB là một ngã ba được cộng đồng phát triển, hỗ trợ thương mại của hệ thống quản lý cơ sở dữ liệu quan hệ MySQL $ sudo apt install default-libmysqlclient-dev Để có thể biên dịch các ví dụ C, chúng ta cần cài đặt các thư viện phát triển MySQL C. Dòng trên cho thấy cách chúng ta có thể làm điều đó trên Linux dựa trên Debian C99Hướng dẫn này sử dụng C99. Đối với trình biên dịch GNU C, chúng ta cần thêm tùy chọn -std=c99. Đối với người dùng Windows, Pelles C IDE rất được khuyến khích. (MSVC không hỗ trợ C99. ) MYSQL *con = mysql_init(NULL); Trong C99, chúng ta có thể kết hợp khai báo với mã. Trong các chương trình C cũ hơn, chúng ta cần tách dòng này thành hai dòng MySQL C ví dụ đầu tiênTrong ví dụ đầu tiên, chúng tôi kiểm tra một lệnh gọi hàm MySQL #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); } $ c99 version.c -o version `mysql_config --cflags --libs`6 hiển thị phiên bản máy khách MySQL #include #include #include Chúng tôi bao gồm các tệp tiêu đề cần thiết printf("MySQL client version: %s\n", mysql_get_client_info()); Dòng mã này xuất phiên bản của máy khách MySQL. Đối với điều này, chúng tôi sử dụng lệnh gọi hàm $ c99 version.c -o version `mysql_config --cflags --libs`6 exit(0); Chúng tôi thoát khỏi kịch bản $ c99 version.c -o version `mysql_config --cflags --libs` Đây là cách chúng tôi biên dịch ví dụ mã $ ./version MySQL client version: 10.3.24 Đây là đầu ra MySQL C tạo cơ sở dữ liệuVí dụ mã tiếp theo sẽ tạo cơ sở dữ liệu. Ví dụ mã có thể được chia thành các phần này
MYSQL *con = mysql_init(NULL);0 Ví dụ code kết nối với hệ cơ sở dữ liệu MySQL và tạo cơ sở dữ liệu mới có tên là $ c99 version.c -o version `mysql_config --cflags --libs`8 MYSQL *con = mysql_init(NULL); Hàm $ c99 version.c -o version `mysql_config --cflags --libs`9 phân bổ hoặc khởi tạo một đối tượng MYSQL phù hợp với hàm $ ./version MySQL client version: 10.3.240. Hãy nhớ rằng đây là C99 MYSQL *con = mysql_init(NULL);0 Chúng tôi kiểm tra giá trị trả về. Nếu chức năng $ c99 version.c -o version `mysql_config --cflags --libs`9 không thành công, chúng tôi sẽ in thông báo lỗi và chấm dứt ứng dụng MYSQL *con = mysql_init(NULL);1 Hàm $ ./version MySQL client version: 10.3.240 thiết lập kết nối tới cơ sở dữ liệu. Chúng tôi cung cấp các tham số xử lý kết nối, tên máy chủ, tên người dùng và mật khẩu cho chức năng. Bốn tham số khác là tên cơ sở dữ liệu, số cổng, ổ cắm unix và cuối cùng là cờ máy khách. Chúng tôi cần đặc quyền siêu người dùng để tạo cơ sở dữ liệu mới MYSQL *con = mysql_init(NULL);2 $ ./version MySQL client version: 10.3.243 thực thi câu lệnh SQL. Trong trường hợp của chúng tôi, câu lệnh tạo cơ sở dữ liệu mới MYSQL *con = mysql_init(NULL);3 Cuối cùng, chúng tôi đóng kết nối cơ sở dữ liệu MYSQL *con = mysql_init(NULL);4 Đây là bằng chứng cho thấy cơ sở dữ liệu đã được tạo MySQL C tạo và điền vào bảngTrước khi tạo một bảng mới, chúng ta tạo một người dùng mà chúng ta sẽ sử dụng trong phần còn lại của hướng dẫn MYSQL *con = mysql_init(NULL);5 Chúng tôi đã tạo một người dùng mới $ ./version MySQL client version: 10.3.244 MYSQL *con = mysql_init(NULL);6 Ở đây chúng tôi cấp tất cả các đặc quyền cho ________ 94 trên cơ sở dữ liệu ________ 38 Ví dụ mã tiếp theo tạo một bảng và chèn một số dữ liệu vào đó MYSQL *con = mysql_init(NULL);7 Chúng tôi không sử dụng bất kỳ lệnh gọi hàm MySQL mới nào ở đây. Chúng tôi sử dụng lệnh gọi hàm $ ./version MySQL client version: 10.3.243 để vừa tạo bảng vừa chèn dữ liệu vào đó MYSQL *con = mysql_init(NULL);8 Để tránh sự lặp lại không cần thiết, chúng tôi tạo một hàm $ ./version MySQL client version: 10.3.248 tùy chỉnh MYSQL *con = mysql_init(NULL);9 Chúng tôi kết nối với cơ sở dữ liệu $ c99 version.c -o version `mysql_config --cflags --libs`8. Tên người dùng là $ ./version MySQL client version: 10.3.244 và mật khẩu là MYSQL *con = mysql_init(NULL);01. Tham số thứ năm là tên cơ sở dữ liệu #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }0 Ở đây chúng ta tạo một bảng tên là MYSQL *con = mysql_init(NULL);02. Nó có ba cột #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }1 Chúng tôi chèn một hàng vào bảng MYSQL *con = mysql_init(NULL);02 #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }2 Chúng tôi hiển thị các bảng trong cơ sở dữ liệu #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }3 Chúng tôi chọn tất cả dữ liệu từ bảng MySQL C lấy dữ liệuTrong ví dụ tiếp theo, chúng tôi truy xuất dữ liệu từ một bảng Chúng ta cần làm các bước sau
#include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }4 Ví dụ hiển thị tất cả các hàng từ bảng ô tô #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }5 Chúng tôi thực hiện truy vấn lấy tất cả dữ liệu từ bảng xe ô tô #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }6 Chúng tôi nhận được tập kết quả bằng hàm MYSQL *con = mysql_init(NULL);04. MYSQL *con = mysql_init(NULL);05 là một cấu trúc để giữ một tập kết quả #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }7 Ta lấy số trường (cột) trong bảng #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }8 Chúng tôi tìm nạp các hàng và in chúng ra màn hình #include #include #include int main(int argc, char **argv) { printf("MySQL client version: %s\n", mysql_get_client_info()); exit(0); }9 Chúng tôi giải phóng tài nguyên #include #include #include0 Đây là đầu ra Id hàng được chèn lần cuối của MySQL CĐôi khi, chúng ta cần xác định id của hàng được chèn cuối cùng. Chúng ta có thể xác định id hàng được chèn cuối cùng bằng cách gọi hàm MYSQL *con = mysql_init(NULL);06. Hàm này chỉ hoạt động nếu chúng ta đã xác định một cột MYSQL *con = mysql_init(NULL);07 trong bảng #include #include #include1 Một bảng mới được tạo. Ba hàng được chèn vào bảng. Chúng tôi xác định id hàng được chèn cuối cùng #include #include #include2 Cột MYSQL *con = mysql_init(NULL);08 có loại MYSQL *con = mysql_init(NULL);07 #include #include #include3 Hàm MYSQL *con = mysql_init(NULL);06 trả về giá trị được tạo cho cột MYSQL *con = mysql_init(NULL);07 bởi câu lệnh MYSQL *con = mysql_init(NULL);2 hoặc MYSQL *con = mysql_init(NULL);3 trước đó #include #include #include4 Đây là đầu ra Tiêu đề cột MySQL CTrong ví dụ tiếp theo, chúng tôi truy xuất dữ liệu từ bảng và tên cột của nó #include #include #include5 Chúng tôi in ba hàng đầu tiên từ bảng MYSQL *con = mysql_init(NULL);02. Chúng tôi cũng bao gồm các tiêu đề cột #include #include #include6 Cấu trúc MYSQL *con = mysql_init(NULL);5 chứa thông tin về một trường, chẳng hạn như tên, loại và kích thước của trường. Giá trị trường không phải là một phần của cấu trúc này; #include #include #include7 Hàng đầu tiên chứa các tiêu đề cột. Cuộc gọi MYSQL *con = mysql_init(NULL);7 trả về cấu trúc MYSQL *con = mysql_init(NULL);5. Chúng tôi lấy tên tiêu đề cột từ cấu trúc này #include #include #include8 Đây là đầu ra của chương trình của chúng tôi Nhiều câu lệnh MySQL CCó thể thực thi nhiều câu lệnh SQL trong một truy vấn. Chúng ta phải đặt cờ MYSQL *con = mysql_init(NULL);9 trong phương thức kết nối #include #include #include9 Trong ví dụ này, chúng tôi thực hiện ba câu lệnh MYSQL *con = mysql_init(NULL);00 trong một truy vấn printf("MySQL client version: %s\n", mysql_get_client_info());0 Tùy chọn cuối cùng của phương thức $ ./version MySQL client version: 10.3.240 là cờ khách hàng. Nó được sử dụng để kích hoạt các tính năng nhất định. MYSQL *con = mysql_init(NULL);9 cho phép thực thi nhiều câu lệnh. Điều này bị tắt theo mặc định printf("MySQL client version: %s\n", mysql_get_client_info());1 Truy vấn bao gồm ba câu lệnh MYSQL *con = mysql_init(NULL);00. Chúng được phân tách bằng dấu chấm phẩy MYSQL *con = mysql_init(NULL);04 ký tự. Ký tự gạch chéo ngược MYSQL *con = mysql_init(NULL);05 được sử dụng để phân tách chuỗi thành hai dòng. Nó không có gì để làm với nhiều tuyên bố printf("MySQL client version: %s\n", mysql_get_client_info());2 Đoạn mã được đặt giữa các câu lệnh do/while. Việc truy xuất dữ liệu sẽ được thực hiện trong nhiều chu kỳ. Chúng tôi truy xuất dữ liệu cho từng câu lệnh MYSQL *con = mysql_init(NULL);00 riêng biệt printf("MySQL client version: %s\n", mysql_get_client_info());3 Chúng tôi mong đợi nhiều bộ kết quả. Do đó, chúng tôi gọi hàm MYSQL *con = mysql_init(NULL);07. Nó đọc kết quả câu lệnh tiếp theo và trả về một trạng thái để cho biết liệu có tồn tại nhiều kết quả hay không. Hàm trả về 0 nếu quá trình thực thi diễn ra suôn sẻ và có nhiều kết quả hơn. Nó trả về -1, khi nó được thực thi OK và không còn kết quả nào nữa. Cuối cùng, nó trả về giá trị lớn hơn 0 nếu xảy ra lỗi printf("MySQL client version: %s\n", mysql_get_client_info());4 Chúng tôi kiểm tra lỗi printf("MySQL client version: %s\n", mysql_get_client_info());5 đầu ra ví dụ Hình ảnh chèn MySQL CMột số người thích đưa hình ảnh của họ vào cơ sở dữ liệu, một số thích giữ chúng trên hệ thống tệp cho các ứng dụng của họ. Khó khăn kỹ thuật phát sinh khi chúng tôi làm việc với nhiều hình ảnh. Hình ảnh là dữ liệu nhị phân. Cơ sở dữ liệu MySQL có một kiểu dữ liệu đặc biệt để lưu trữ dữ liệu nhị phân được gọi là MYSQL *con = mysql_init(NULL);08 (Đối tượng lớn nhị phân) printf("MySQL client version: %s\n", mysql_get_client_info());6 Đối với các ví dụ của chúng tôi, chúng tôi tạo một bảng MYSQL *con = mysql_init(NULL);09 mới. Kích thước hình ảnh có thể lên tới 16 MB. Nó được xác định bởi kiểu dữ liệu MYSQL *con = mysql_init(NULL);10 printf("MySQL client version: %s\n", mysql_get_client_info());7 Trong ví dụ này, chúng tôi chèn một hình ảnh vào bảng MYSQL *con = mysql_init(NULL);11 printf("MySQL client version: %s\n", mysql_get_client_info());8 Bao gồm này là dành cho chức năng MYSQL *con = mysql_init(NULL);12 printf("MySQL client version: %s\n", mysql_get_client_info());9 Ở đây chúng tôi mở tệp hình ảnh. Trong thư mục làm việc hiện tại, chúng ta nên có tệp MYSQL *con = mysql_init(NULL);13 exit(0);0 Ta di chuyển con trỏ tệp về cuối tệp bằng hàm MYSQL *con = mysql_init(NULL);14. Chúng tôi sẽ xác định kích thước của hình ảnh. Nếu xảy ra lỗi, chỉ báo lỗi được đặt. Chúng tôi kiểm tra chỉ báo bằng chức năng MYSQL *con = mysql_init(NULL);14. Trong trường hợp có lỗi, chúng tôi cũng đóng trình xử lý tệp đã mở exit(0);1 Đối với các luồng nhị phân, hàm MYSQL *con = mysql_init(NULL);16 trả về số byte từ đầu tệp, e. g. kích thước của tập tin hình ảnh. Trong trường hợp có lỗi, hàm trả về -1 và errno được đặt. Hàm MYSQL *con = mysql_init(NULL);17 diễn giải giá trị của errno dưới dạng thông báo lỗi và in nó ra luồng đầu ra lỗi tiêu chuẩn exit(0);2 Trong mảng này, chúng ta sẽ lưu trữ dữ liệu hình ảnh exit(0);3 Ta đọc dữ liệu từ con trỏ tệp và lưu vào mảng dữ liệu. Tổng số phần tử được đọc thành công được trả về exit(0);4 Sau khi dữ liệu được đọc, chúng ta có thể đóng trình xử lý tệp exit(0);5 Hàm MYSQL *con = mysql_init(NULL);18 thêm một ký tự thoát, dấu gạch chéo ngược, MYSQL *con = mysql_init(NULL);05, trước một số ký tự nguy hiểm tiềm ẩn nhất định trong một chuỗi được truyền vào hàm. Điều này có thể giúp ngăn chặn các cuộc tấn công SQL injection. Bộ đệm mới phải dài ít nhất MYSQL *con = mysql_init(NULL);20 exit(0);6 Ở đây chúng ta bắt đầu xây dựng câu lệnh SQL. Chúng tôi xác định kích thước của chuỗi SQL bằng hàm MYSQL *con = mysql_init(NULL);12 exit(0);7 Truy vấn phải đủ dài để chứa kích thước của câu lệnh chuỗi SQL và kích thước của tệp hình ảnh. Sử dụng hàm MYSQL *con = mysql_init(NULL);22, chúng tôi ghi đầu ra được định dạng vào bộ đệm truy vấn exit(0);8 Chúng tôi thực hiện truy vấn bằng hàm MYSQL *con = mysql_init(NULL);23. Không thể sử dụng $ ./version MySQL client version: 10.3.243 cho các câu lệnh chứa dữ liệu nhị phân; MySQL C chọn hình ảnhTrong ví dụ trước, chúng ta đã chèn một hình ảnh vào cơ sở dữ liệu. Trong ví dụ sau, chúng tôi chọn hình ảnh được chèn từ cơ sở dữ liệu exit(0);9 Trong ví dụ này, chúng tôi tạo một tệp hình ảnh từ cơ sở dữ liệu $ c99 version.c -o version `mysql_config --cflags --libs`0 Chúng tôi mở một trình xử lý tệp mới để viết $ c99 version.c -o version `mysql_config --cflags --libs`1 Chúng tôi chọn cột MYSQL *con = mysql_init(NULL);26 từ bảng MYSQL *con = mysql_init(NULL);11 với MYSQL *con = mysql_init(NULL);08 1 $ c99 version.c -o version `mysql_config --cflags --libs`2 Hàng chứa dữ liệu thô $ c99 version.c -o version `mysql_config --cflags --libs`3 Chúng tôi nhận được chiều dài của hình ảnh $ c99 version.c -o version `mysql_config --cflags --libs`4 Chúng tôi ghi dữ liệu đã truy xuất vào đĩa bằng lệnh gọi hàm MYSQL *con = mysql_init(NULL);29. Chúng tôi kiểm tra chỉ báo lỗi bằng chức năng MYSQL *con = mysql_init(NULL);30 exit(0);4 Sau khi chúng tôi ghi dữ liệu hình ảnh, chúng tôi đóng trình xử lý tệp bằng hàm MYSQL *con = mysql_init(NULL);31 Đây là hướng dẫn MySQL C API. Bạn cũng có thể quan tâm đến hướng dẫn PyMySQL, hướng dẫn MySQL Visual Basic hoặc hướng dẫn mysqli PHP, hướng dẫn PostgreSQL C hoặc hướng dẫn SQLite C trên ZetCode Điều nào sau đây là một chức năng của MySQL APIs Mcq?API MySQL là thư viện để kết nối ứng dụng với máy chủ cơ sở dữ liệu .
MySQL có phải là API REST không?MySQL đã là tiêu chuẩn cho điều này trong nhiều thập kỷ. Một nhược điểm là cơ sở dữ liệu chỉ lưu trữ dữ liệu. Nếu bạn muốn làm gì đó với dữ liệu đó, API REST của MySQL sẽ giúp bạn . Đây là những gì bạn cần biết để sử dụng MySQL REST API trong các dự án của mình. |