mysqli_multi_query
[Php 5, Php 7, Php 8]
mysqli :: multi_query - mysqli_multi_query - thực hiện một hoặc nhiều truy vấn trên cơ sở dữ liệu -- mysqli_multi_query — Performs one or more queries on the database
Sự mô tả
Phong cách hướng đối tượng
publicMysqli :: multi_query [chuỗi $query
]: bool mysqli::multi_query[string $query
]: bool
mysqli_multi_query [mysqli $mysql
, chuỗi $query
]: bool[mysqli $mysql
, string $query
]: bool
Các truy vấn được gửi không đồng bộ trong một cuộc gọi đến cơ sở dữ liệu, nhưng cơ sở dữ liệu xử lý chúng theo tuần tự. mysqli_multi_query [] chờ truy vấn đầu tiên hoàn thành trước khi trả lại quyền kiểm soát cho PHP. Máy chủ MySQL sau đó sẽ xử lý truy vấn tiếp theo trong chuỗi. Khi kết quả tiếp theo đã sẵn sàng, MySQL sẽ đợi lần thực hiện tiếp theo của mysqli_next_result [] từ PHP.mysqli_multi_query[] waits for the first query to complete before returning control to PHP. The MySQL server will then process the next query in the sequence. Once the next result is ready, MySQL will wait for the next execution of mysqli_next_result[] from PHP.
Nên sử dụng Do-WHILE để xử lý nhiều truy vấn. Kết nối sẽ bận rộn cho đến khi tất cả các truy vấn đã hoàn thành và kết quả của họ được tìm nạp vào PHP. Không có tuyên bố nào khác có thể được đưa ra trên cùng một kết nối cho đến khi tất cả các truy vấn được xử lý. Để tiến hành truy vấn tiếp theo trong chuỗi, hãy sử dụng mysqli_next_result []. Nếu kết quả tiếp theo chưa sẵn sàng, MySQLI sẽ đợi phản hồi từ máy chủ MySQL. Để kiểm tra xem có nhiều kết quả hơn không, hãy sử dụng mysqli_more_results [].mysqli_next_result[]. If the next result is not ready yet, mysqli will wait for the response from the MySQL server. To check if there are more results, use mysqli_more_results[].
Đối với các truy vấn tạo ra một tập kết quả, chẳng hạn như SELECT, SHOW, DESCRIBE
hoặc EXPLAIN
, mysqli_use_result [] hoặc mysqli_store_result [] có thể được sử dụng để truy xuất tập kết quả. Đối với các truy vấn không tạo ra một tập kết quả, các chức năng tương tự có thể được sử dụng để truy xuất thông tin như số lượng hàng bị ảnh hưởng.mysqli_use_result[] or mysqli_store_result[] can be used to retrieve the result set. For queries which do not produce a result set, the same functions can be used to retrieve information such as the number of affected rows.
Mẹo
Thực hiện các câu lệnh CALL
cho các thủ tục được lưu trữ có thể tạo ra nhiều bộ kết quả. Nếu quy trình được lưu trữ chứa các câu lệnh SELECT
, các bộ kết quả được trả về theo thứ tự chúng được tạo ra khi thủ tục thực thi. Nói chung, người gọi không thể biết có bao nhiêu kết quả đặt một thủ tục sẽ trở lại và phải được chuẩn bị để lấy nhiều kết quả. Kết quả cuối cùng từ thủ tục là kết quả trạng thái bao gồm không có kết quả. Trạng thái cho biết thủ tục thành công hay xảy ra lỗi.
Thông số
________số 8Chỉ theo kiểu thủ tục: một đối tượng mysqli được trả về bởi mysqli_connect [] hoặc mysqli_init []mysqli object returned by mysqli_connect[] or mysqli_init[]
query
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
Trả về giá trị
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.$query
0 if the first statement failed. To retrieve subsequent errors from other statements you have to call mysqli_next_result[] first.
Ví dụ
Ví dụ #1 MySQLI :: Multi_Query [] Ví dụmysqli::multi_query[] example
Phong cách hướng đối tượng
$query
1
$query
2
$query
3publicMysqli :: multi_query [chuỗi $query
]: bool
$query
1
$query
2
$query
6mysqli_multi_query [mysqli $mysql
, chuỗi $query
]: bool
my_user@localhost ----------------- Amersfoort Maastricht Dordrecht Leiden Haarlemmermeer
Các truy vấn được gửi không đồng bộ trong một cuộc gọi đến cơ sở dữ liệu, nhưng cơ sở dữ liệu xử lý chúng theo tuần tự. mysqli_multi_query [] chờ truy vấn đầu tiên hoàn thành trước khi trả lại quyền kiểm soát cho PHP. Máy chủ MySQL sau đó sẽ xử lý truy vấn tiếp theo trong chuỗi. Khi kết quả tiếp theo đã sẵn sàng, MySQL sẽ đợi lần thực hiện tiếp theo của mysqli_next_result [] từ PHP.
- Nên sử dụng Do-WHILE để xử lý nhiều truy vấn. Kết nối sẽ bận rộn cho đến khi tất cả các truy vấn đã hoàn thành và kết quả của họ được tìm nạp vào PHP. Không có tuyên bố nào khác có thể được đưa ra trên cùng một kết nối cho đến khi tất cả các truy vấn được xử lý. Để tiến hành truy vấn tiếp theo trong chuỗi, hãy sử dụng mysqli_next_result []. Nếu kết quả tiếp theo chưa sẵn sàng, MySQLI sẽ đợi phản hồi từ máy chủ MySQL. Để kiểm tra xem có nhiều kết quả hơn không, hãy sử dụng mysqli_more_results [].
- Đối với các truy vấn tạo ra một tập kết quả, chẳng hạn như
SELECT, SHOW, DESCRIBE
hoặcEXPLAIN
, mysqli_use_result [] hoặc mysqli_store_result [] có thể được sử dụng để truy xuất tập kết quả. Đối với các truy vấn không tạo ra một tập kết quả, các chức năng tương tự có thể được sử dụng để truy xuất thông tin như số lượng hàng bị ảnh hưởng. - Mẹo
- Thực hiện các câu lệnh
CALL
cho các thủ tục được lưu trữ có thể tạo ra nhiều bộ kết quả. Nếu quy trình được lưu trữ chứa các câu lệnhSELECT
, các bộ kết quả được trả về theo thứ tự chúng được tạo ra khi thủ tục thực thi. Nói chung, người gọi không thể biết có bao nhiêu kết quả đặt một thủ tục sẽ trở lại và phải được chuẩn bị để lấy nhiều kết quả. Kết quả cuối cùng từ thủ tục là kết quả trạng thái bao gồm không có kết quả. Trạng thái cho biết thủ tục thành công hay xảy ra lỗi. - Thông số
________số 8 ¶
Chỉ theo kiểu thủ tục: một đối tượng mysqli được trả về bởi mysqli_connect [] hoặc mysqli_init []
$query
7
$query
8
$query
9
$mysql
0 query
¶
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
$mysql
1
$mysql
2
$mysql
0Trả về giá trị ¶
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.
$mysql
4
$mysql
5
$mysql
6
$mysql
7
$mysql
0Ví dụ ¶
Ví dụ #1 MySQLI :: Multi_Query [] Ví dụ
$mysql
9
$query
0
$query
1
$query
2
$query
3Phong cách thủ tục ¶
Các ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
$query
4
$query
5
$query
6
$mysql
0Xem thêm ¶
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
$query
8
$query
9
$mysql
0Trả về giá trị ¶
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
SELECT, SHOW, DESCRIBE
1
SELECT, SHOW, DESCRIBE
2
SELECT, SHOW, DESCRIBE
3
SELECT, SHOW, DESCRIBE
4Trả về giá trị ¶
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.
SELECT, SHOW, DESCRIBE
5
Ví dụ ¶
Chỉ theo kiểu thủ tục: một đối tượng mysqli được trả về bởi mysqli_connect [] hoặc mysqli_init []
SELECT, SHOW, DESCRIBE
6
SELECT, SHOW, DESCRIBE
7
SELECT, SHOW, DESCRIBE
8
$mysql
0 query
¶
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.
EXPLAIN
0
EXPLAIN
1
EXPLAIN
2
EXPLAIN
3
EXPLAIN
4
EXPLAIN
5
EXPLAIN
6
$mysql
0Ví dụ ¶
Chỉ theo kiểu thủ tục: một đối tượng mysqli được trả về bởi mysqli_connect [] hoặc mysqli_init []
EXPLAIN
8
query
¶
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
EXPLAIN
9
CALL
0
CALL
1
$mysql
0Trả về giá trị ¶
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.
CALL
3
CALL
4
CALL
5
$mysql
0Ví dụ ¶
Ví dụ #1 MySQLI :: Multi_Query [] Ví dụ
CALL
7
CALL
8
CALL
9
SELECT
0
SELECT
1
$mysql
0Phong cách thủ tục ¶
Các ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
SELECT
3
SELECT
4
SELECT
5
SELECT
6Xem thêm ¶
Trả về $query
0 nếu câu lệnh đầu tiên thất bại. Để truy xuất các lỗi tiếp theo từ các câu lệnh khác, bạn phải gọi mysqli_next_result [] trước.
SELECT
7
SELECT
8
SELECT
9
mysql
0
mysql
1
mysql
2
mysql
3
$mysql
0Ví dụ ¶
Ví dụ #1 MySQLI :: Multi_Query [] Ví dụ
mysql
5
mysql
6
$mysql
0Phong cách thủ tục ¶
Các ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
mysql
8
mysql
9
query
0
query
1
query
2
query
3
query
4
$mysql
0Xem thêm ¶
Ví dụ #1 MySQLI :: Multi_Query [] Ví dụ
query
6
query
7
query
8
query
9Phong cách thủ tục ¶
Các ví dụ trên sẽ xuất ra một cái gì đó tương tự như:
$query
00
$query
01
$query
02
$query
03
$query
04
$query
05
$query
06
$query
07
$query
08
$mysql
0Xem thêm ¶
Một chuỗi chứa các truy vấn sẽ được thực thi. Nhiều truy vấn phải được phân tách bằng dấu chấm phẩy.
$query
10
Trả về giá trị ¶
7 năm trước
$query
11
$query
12
$mysql
0