Các chức năng API của MySQL C

Các chức năng có sẵn trong C API được liệt kê bên dưới và được mô tả chi tiết hơn trong phần tiếp theo.

mysql_affected_rows()Trả về số lượng hàng bị ảnh hưởng bởi truy vấn UPDATE, DELETE hoặc INSERT cuối cùng. mysql_close() Đóng kết nối máy chủ. mysql_connect() Kết nối với máy chủ MySQL. Chức năng này không được dùng nữa; . mysql_change_user()Thay đổi người dùng và cơ sở dữ liệu trên một kết nối mở. mysql_create_db()Tạo cơ sở dữ liệu. Chức năng này không được dùng nữa; . mysql_data_seek()Tìm kiếm một hàng tùy ý trong tập hợp kết quả truy vấn. mysql_debug() Thực hiện DBUG_PUSH với chuỗi đã cho. mysql_drop_db() Xóa cơ sở dữ liệu. Chức năng này không được dùng nữa; . mysql_dump_debug_info() Làm cho máy chủ ghi thông tin gỡ lỗi vào nhật ký. mysql_eof() Xác định xem hàng cuối cùng của tập kết quả đã được đọc hay chưa. Chức năng này không được dùng nữa; . mysql_errno() Trả về số lỗi cho hàm MySQL được gọi gần đây nhất. mysql_error()Trả về thông báo lỗi cho hàm MySQL được gọi gần đây nhất. mysql_escape_string() Thoát các ký tự đặc biệt trong chuỗi để sử dụng trong câu lệnh SQL. mysql_fetch_field()Trả về kiểu của trường bảng tiếp theo. mysql_fetch_field_direct()Trả về loại trường bảng, được cung cấp một số trường. mysql_fetch_fields()Trả về một mảng gồm tất cả các cấu trúc trường. mysql_fetch_lengths()Trả về độ dài của tất cả các cột trong hàng hiện tại. mysql_fetch_row() Tìm nạp hàng tiếp theo từ tập kết quả. mysql_field_seek()Đặt con trỏ cột vào một cột cụ thể. mysql_field_count()Trả về số cột kết quả cho truy vấn gần đây nhất. mysql_field_tell()Trả về vị trí của con trỏ trường được sử dụng cho mysql_fetch_field() cuối cùng. mysql_free_result() Giải phóng bộ nhớ được sử dụng bởi tập kết quả. mysql_get_client_info()Trả về thông tin phiên bản máy khách. mysql_get_host_info()Trả về một chuỗi mô tả kết nối. mysql_get_proto_info()Trả về phiên bản giao thức được kết nối sử dụng. mysql_get_server_info()Trả về số phiên bản máy chủ. mysql_info() Trả về thông tin về truy vấn được thực hiện gần đây nhất. mysql_init() Nhận hoặc khởi tạo cấu trúc DELETE0. mysql_insert_id()Trả về ID được tạo cho cột DELETE1 bởi truy vấn trước đó. mysql_kill() Giết một chủ đề nhất định. mysql_list_dbs()Trả về tên cơ sở dữ liệu khớp với một biểu thức chính quy đơn giản. mysql_list_fields()Trả về tên trường khớp với biểu thức chính quy đơn giản. mysql_list_processes()Trả về danh sách các luồng máy chủ hiện tại. mysql_list_tables()Trả về tên bảng khớp với một biểu thức chính quy đơn giản. mysql_num_fields()Trả về số cột trong tập kết quả. mysql_num_rows()Trả về số hàng trong một tập hợp kết quả. mysql_options()Đặt tùy chọn kết nối cho DELETE2. mysql_ping() Kiểm tra xem kết nối đến máy chủ có hoạt động hay không, kết nối lại nếu cần. mysql_query() Thực thi truy vấn SQL được chỉ định dưới dạng chuỗi kết thúc null. mysql_real_connect() Kết nối với máy chủ MySQL. mysql_real_query() Thực thi truy vấn SQL được chỉ định dưới dạng chuỗi được tính. mysql_reload() Yêu cầu máy chủ tải lại các bảng cấp. mysql_row_seek()Tìm kiếm một hàng trong tập hợp kết quả, sử dụng giá trị được trả về từ DELETE3. mysql_row_tell()Trả về vị trí con trỏ hàng. mysql_select_db() Kết nối với cơ sở dữ liệu. mysql_shutdown() Tắt máy chủ cơ sở dữ liệu. mysql_stat()Trả về trạng thái máy chủ dưới dạng chuỗi. mysql_store_result() Truy xuất một tập hợp kết quả hoàn chỉnh cho máy khách. mysql_thread_id()Trả về ID luồng hiện tại. mysql_use_result() Bắt đầu truy xuất tập kết quả theo từng hàng

Để kết nối với máy chủ, hãy gọi DELETE4 để khởi tạo trình xử lý kết nối, sau đó gọi mysql_real_connect() với trình xử lý đó (cùng với các thông tin khác như tên máy chủ, tên người dùng và mật khẩu). Khi bạn kết nối xong, hãy gọi số DELETE6 để chấm dứt kết nối

Trong khi kết nối đang hoạt động, máy khách có thể gửi các truy vấn SQL đến máy chủ bằng cách sử dụng DELETE7 hoặc DELETE8. Sự khác biệt giữa hai loại này là DELETE7 mong đợi truy vấn được chỉ định dưới dạng chuỗi kết thúc null trong khi DELETE8 mong đợi một chuỗi được tính. Nếu chuỗi chứa dữ liệu nhị phân (có thể bao gồm các byte rỗng), bạn phải sử dụng DELETE8

Đối với mỗi truy vấn không ______2_______2 (e. g. , INSERT, UPDATE, DELETE), bạn có thể biết có bao nhiêu hàng bị ảnh hưởng (thay đổi) bằng cách gọi số INSERT6

Đối với truy vấn INSERT2, bạn truy xuất các hàng đã chọn dưới dạng tập hợp kết quả. (Lưu ý rằng một số câu lệnh giống như INSERT2 ở chỗ chúng trả về các hàng. Chúng bao gồm INSERT9, mysql_real_connect()0 và mysql_real_connect()1. Chúng nên được xử lý giống như câu lệnh INSERT2. )

Có hai cách để khách hàng xử lý tập hợp kết quả. Một cách là truy xuất toàn bộ tập kết quả cùng một lúc bằng cách gọi mysql_real_connect()3. Hàm này lấy từ máy chủ tất cả các hàng được truy vấn trả về và lưu trữ chúng trong máy khách. Cách thứ hai là để khách hàng bắt đầu truy xuất tập kết quả theo từng hàng bằng cách gọi mysql_real_connect()4. Hàm này khởi tạo truy xuất, nhưng không thực sự lấy bất kỳ hàng nào từ máy chủ

Trong cả hai trường hợp, bạn truy cập các hàng bằng cách gọi mysql_real_connect()5. Với mysql_real_connect()3, mysql_real_connect()5 truy cập các hàng đã được tải xuống từ máy chủ. Với mysql_real_connect()4, mysql_real_connect()5 thực sự truy xuất hàng từ máy chủ. Thông tin về kích thước của các giá trị dữ liệu trong mỗi hàng có sẵn bằng cách gọi CREATE DATABASE0

Sau khi bạn hoàn thành một tập hợp kết quả, hãy gọi CREATE DATABASE1 để giải phóng bộ nhớ được sử dụng cho nó

Hai cơ chế truy xuất là bổ sung cho nhau. Các chương trình khách hàng nên chọn cách tiếp cận phù hợp nhất với yêu cầu của họ. Trên thực tế, khách hàng có xu hướng sử dụng mysql_real_connect()3 phổ biến hơn

Một lợi thế của mysql_real_connect()3 là vì tất cả các hàng đã được tải về máy khách, bạn không chỉ có thể truy cập các hàng một cách tuần tự mà còn có thể di chuyển qua lại trong tập kết quả bằng cách sử dụng CREATE DATABASE4 hoặc CREATE DATABASE5 để thay đổi vị trí hàng hiện tại trong tập kết quả. Bạn cũng có thể biết có bao nhiêu hàng bằng cách gọi CREATE DATABASE6. Mặt khác, yêu cầu bộ nhớ cho mysql_real_connect()3 có thể rất cao đối với các tập kết quả lớn và bạn có nhiều khả năng gặp phải tình trạng hết bộ nhớ

Một lợi thế của mysql_real_connect()4 là máy khách yêu cầu ít bộ nhớ hơn cho tập kết quả vì nó chỉ duy trì một hàng tại một thời điểm (và vì có ít chi phí phân bổ hơn nên mysql_real_connect()4 có thể nhanh hơn). Nhược điểm là bạn phải xử lý từng hàng một cách nhanh chóng để tránh làm nghẽn máy chủ, bạn không có quyền truy cập ngẫu nhiên vào các hàng trong tập kết quả (bạn chỉ có thể truy cập các hàng tuần tự) và bạn không biết có bao nhiêu hàng trong tập kết quả. . Hơn nữa, bạn phải truy xuất tất cả các hàng ngay cả khi bạn xác định trong quá trình truy xuất giữa chừng rằng bạn đã tìm thấy thông tin mà mình đang tìm kiếm

API giúp khách hàng có thể phản hồi phù hợp với các truy vấn (chỉ truy xuất các hàng khi cần thiết) mà không cần biết liệu truy vấn đó có phải là một INSERT2 hay không. Bạn có thể làm điều này bằng cách gọi mysql_real_connect()3 sau mỗi DELETE7 (hoặc DELETE8). Nếu cuộc gọi tập kết quả thành công, truy vấn là một INSERT2 và bạn có thể đọc các hàng. Nếu cuộc gọi tập kết quả không thành công, hãy gọi DBUG_PUSH5 để xác định xem kết quả có thực sự được mong đợi hay không. Nếu DBUG_PUSH5 trả về 0, thì truy vấn không trả về dữ liệu nào (cho biết đó là một INSERT, UPDATE, DELETE, v.v. ) và do đó dự kiến ​​sẽ không trả về các hàng. Nếu DBUG_PUSH5 khác 0, thì truy vấn phải trả về các hàng, nhưng không. Điều này chỉ ra rằng truy vấn là một INSERT2 không thành công. Xem mô tả cho DBUG_PUSH5 để biết ví dụ về cách thực hiện điều này

Cả mysql_real_connect()3 và mysql_real_connect()4 đều cho phép bạn lấy thông tin về các trường tạo nên tập kết quả (số lượng trường, tên và loại của chúng, v.v. ). Bạn có thể truy cập thông tin trường liên tục trong hàng bằng cách gọi liên tục mysql_fetch_field() hoặc theo số trường trong hàng bằng cách gọi DROP DATABASE6. Vị trí con trỏ trường hiện tại có thể được thay đổi bằng cách gọi DROP DATABASE7. Đặt con trỏ trường ảnh hưởng đến các cuộc gọi tiếp theo tới mysql_fetch_field(). Bạn cũng có thể nhận thông tin cho tất cả các lĩnh vực cùng một lúc bằng cách gọi số DROP DATABASE9

Để phát hiện và báo cáo lỗi, MySQL cung cấp quyền truy cập vào thông tin lỗi bằng các hàm mysql_errno()mysql_error(). Chúng trả về mã lỗi hoặc thông báo lỗi cho hàm được gọi gần đây nhất có thể thành công hoặc không thành công, cho phép bạn xác định thời điểm xảy ra lỗi và lỗi đó là gì

Các chức năng của MySQL API là gì?

API cung cấp quyền truy cập cấp thấp vào tài nguyên MySQL bằng giao thức MySQL cổ điển hoặc Giao thức X . Cả Trình kết nối và API đều cho phép bạn kết nối và thực thi các câu lệnh MySQL từ ngôn ngữ hoặc môi trường khác, bao gồm ODBC, Java (JDBC), C++, Python, Node. js, PHP, Perl, Ruby và C.

Tôi có thể sử dụng MySQL với C không?

API C cung cấp quyền truy cập cấp thấp vào giao thức máy khách/máy chủ MySQL và cho phép các chương trình C truy cập nội dung cơ sở dữ liệu . Mã API C được phân phối với MySQL và được triển khai trong thư viện libmysqlclient. Để biết thông tin pháp lý, hãy xem Thông báo pháp lý.

MySQL có API không?

Trình kết nối MySQL và API là trình điều khiển và thư viện mà bạn sử dụng để kết nối ứng dụng bằng các ngôn ngữ lập trình khác nhau với máy chủ cơ sở dữ liệu MySQL . Máy chủ ứng dụng và cơ sở dữ liệu có thể nằm trên cùng một máy hoặc giao tiếp qua mạng.

MySQL có hỗ trợ 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.