Hướng dẫn call stored procedure in php - gọi thủ tục lưu sẵn trong php

Cơ sở dữ liệu MySQL hỗ trợ các thủ tục được lưu trữ. Một quy trình được lưu trữ là một chương trình con được lưu trữ trong danh mục cơ sở dữ liệu. Các ứng dụng có thể gọi và thực hiện quy trình được lưu trữ. Câu lệnh SQL CALL được sử dụng để thực hiện quy trình được lưu trữ.

Tham số

Các quy trình được lưu trữ có thể có các tham số IN, INOUTOUT, tùy thuộc vào phiên bản MySQL. Giao diện MySQLI không có khái niệm đặc biệt cho các loại tham số khác nhau.

Trong tham số

Các tham số đầu vào được cung cấp với câu lệnh CALL. Xin vui lòng, đảm bảo các giá trị được thoát chính xác.

Ví dụ số 1 gọi một thủ tục được lưu trữ

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
0

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
1

Ví dụ trên sẽ xuất ra:

array(1) {
  ["id"]=>
  string(1) "1"
}

Tham số inout/out

Các giá trị của các tham số ____ 6/________ 7 được truy cập bằng các biến phiên.

Ví dụ #2 Sử dụng các biến phiên

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
0

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
6

Ví dụ trên sẽ xuất ra:

Tham số inout/out

Các giá trị của các tham số ____ 6/________ 7 được truy cập bằng các biến phiên.

Ví dụ #2 Sử dụng các biến phiênmysqli::query(). The mysqli::query() function combines statement execution and fetching the first result set into a buffered result set, if any. However, there are additional stored procedure result sets hidden from the user which cause mysqli::query() to fail returning the user expected result sets.

Các nhà phát triển ứng dụng và khung có thể cung cấp API thuận tiện hơn bằng cách sử dụng hỗn hợp các biến phiên và kiểm tra danh mục dữ liệu. Tuy nhiên, xin lưu ý tác động hiệu suất có thể có của một giải pháp tùy chỉnh dựa trên kiểm tra danh mục.mysqli::real_query() or mysqli::multi_query(). Both functions allow fetching any number of result sets returned by a statement, such as CALL. Failing to fetch all result sets returned by a stored procedure causes an error.

Bộ kết quả xử lý

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
0

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}
0

Ví dụ trên sẽ xuất ra:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}

Tham số inout/out

Các giá trị của các tham số ____ 6/________ 7 được truy cập bằng các biến phiên.

Ví dụ #2 Sử dụng các biến phiên

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
0

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}
4

Ví dụ trên sẽ xuất ra:

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}

Tham số inout/out

Các giá trị của các tham số ____ 6/________ 7 được truy cập bằng các biến phiên.

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "1"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    string(1) "2"
  }
  [1]=>
  array(1) {
    [0]=>
    string(1) "3"
  }
  [2]=>
  array(1) {
    [0]=>
    string(1) "4"
  }
}
0

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}
7

Ví dụ trên sẽ xuất ra:

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4

Tham số inout/out

  • mysqli::query()
  • mysqli::multi_query()
  • mysqli::next_result()
  • mysqli::more_results()

Các giá trị của các tham số ____ 6/________ 7 được truy cập bằng các biến phiên.

Ví dụ #2 Sử dụng các biến phiên

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}
8

---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(1)
  }
  [1]=>
  array(1) {
    [0]=>
    int(2)
  }
  [2]=>
  array(1) {
    [0]=>
    int(3)
  }
}
---
array(3) {
  [0]=>
  array(1) {
    [0]=>
    int(2)
  }
  [1]=>
  array(1) {
    [0]=>
    int(3)
  }
  [2]=>
  array(1) {
    [0]=>
    int(4)
  }
}
9

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4
0

Các nhà phát triển ứng dụng và khung có thể cung cấp API thuận tiện hơn bằng cách sử dụng hỗn hợp các biến phiên và kiểm tra danh mục dữ liệu. Tuy nhiên, xin lưu ý tác động hiệu suất có thể có của một giải pháp tùy chỉnh dựa trên kiểm tra danh mục.

Bộ kết quả xử lý

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4
1

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4
2

id = 1
id = 2
id = 3
id = 2
id = 3
id = 4
3

Chúng ta có thể sử dụng thủ tục được lưu trữ trong PHP không?

Các quy trình được lưu trữ cung cấp cho các lập trình viên PHP các ứng dụng cơ sở dữ liệu được lập trình sẵn để truy xuất và chỉnh sửa các bản ghi MySQL của MySQL.Các quy trình được lưu trữ cho phép bạn gửi các tham số đến chương trình cơ sở dữ liệu, vì vậy bạn chỉ có thể truy xuất một bộ hồ sơ cụ thể.. Stored procedures let you send parameters to the database program, so you can retrieve only a specific set of records.

Thủ tục được lưu trữ trong PHP là gì?

Một quy trình được lưu trữ là một chương trình con được lưu trữ trong danh mục cơ sở dữ liệu.Các ứng dụng có thể gọi và thực hiện quy trình được lưu trữ.Câu lệnh SQL cuộc gọi được sử dụng để thực hiện một quy trình được lưu trữ.Tham số.Các thủ tục được lưu trữ có thể có các tham số trong, inout và out, tùy thuộc vào phiên bản MySQL.a subroutine stored in the database catalog. Applications can call and execute the stored procedure. The CALL SQL statement is used to execute a stored procedure. Parameter. Stored procedures can have IN , INOUT and OUT parameters, depending on the MySQL version.

Tôi có thể gọi thủ tục được lưu trữ trong chức năng không?

Theo Microsoft Standard, các thủ tục được lưu trữ không thể được thực thi bên trong hàm, nhưng về mặt kỹ thuật có thể với một số điều chỉnh.stored procedures cannot be executed inside the function, but technically it is possible with some tweaks.

Cái nào được sử dụng để gọi các thủ tục được lưu trữ?

Callablestatement của API JDBC được sử dụng để gọi một thủ tục được lưu trữ.Một câu lệnh có thể gọi có thể có tham số đầu ra, tham số đầu vào hoặc cả hai. is used to call a stored procedure. A Callable statement can have output parameters, input parameters, or both.