Trong hướng dẫn này, chúng ta sẽ xem xét cách chúng ta có thể trả về nhiều giá trị từ thủ tục được lưu trữ. Sau một ví dụ thực tế, chúng ta sẽ xem làm thế nào chúng ta có thể triển khai ví dụ tương tự trong PHP. Hãy đi sâu vào nó Show
Cũng đọc. Tạo thủ tục lưu trữ MySQL [Có ví dụ] Trước khi chúng ta bắt đầuHàm được lưu trữ trong MySQL chỉ có thể trả về một giá trị. Vì vậy, khi bạn muốn chương trình của mình trả về nhiều giá trị, thủ tục được lưu sẵn sẽ hoạt động Thủ tục lưu trữ hỗ trợ ba loại tham số, IN, OUT và INOUT trong đó OUT và INOUT được sử dụng để trả về các giá trị từ thủ tục lưu sẵn cho chương trình gọi Nếu bạn không quen thuộc với các loại tham số khác nhau trong thủ tục lưu trữ, chúng tôi khuyên bạn nên đọc hướng dẫn chi tiết của chúng tôi về tham số thủ tục lưu trữ MySQL (liên kết đến bài viết trước) Ví dụ để trả về nhiều giá trị từ thủ tục được lưu trữĐể chứng minh các ví dụ, chúng tôi sẽ sử dụng bảng mô tả và dữ liệu sau Bảng đơn hàng Mô tảDữ liệu bảng đơn đặt hàngBây giờ, chúng ta sẽ tạo thủ tục lưu trữ trả về tổng số đơn đặt hàng đã được vận chuyển, đã giao và đã hủy
Trong ví dụ trên, chúng tôi đã khai báo ba tham số OUT để giữ các giá trị của các đơn hàng đã vận chuyển, đã giao và đã hủy Trong phần thân thủ tục, chúng ta đã viết ba câu lệnh SELECT với hàm COUNT để đếm số lượng đơn đặt hàng với điều kiện trạng thái của chúng bằng cách sử dụng mệnh đề WHERE Vì vậy, chúng tôi đang trả về nhiều giá trị từ một thủ tục được lưu trữ. Hãy kiểm tra nó ngay bây giờ
Nếu bạn kiểm tra dữ liệu bảng, có hai đơn hàng đã giao, hai đơn hàng đã hủy và một đơn hàng đã được giao. Chúng ta sẽ nhận được kết quả theo cách này Kết quả ví dụNhư bạn có thể thấy, chúng tôi đã nhận được kết quả như mong đợi, điều đó có nghĩa là quy trình trả về nhiều giá trị của chúng tôi hoạt động hoàn hảo Trả về nhiều giá trị từ thủ tục được lưu trữ trong PHPVí dụ trên đã được chứng minh bằng MySQL CLI. Bây giờ chúng ta sẽ thực hiện ví dụ tương tự trong PHP Chúng tôi đã tạo thủ tục được lưu trữ ở trên. Chúng tôi sẽ sử dụng quy trình tương tự trong ví dụ bên dưới bên trong PHP Trong ví dụ dưới đây, chúng tôi đã sử dụng báo cáo chuẩn bị. MySQLi không cung cấp bất kỳ hỗ trợ gốc nào cho các tham số đầu ra, do đó bạn phải xuất các giá trị được trả về của thủ tục được lưu trữ thành các biến người dùng và sau đó tìm nạp các giá trị bằng cách sử dụng câu lệnh SELECT
Ở đây, chúng tôi đã sử dụng thông tin đăng nhập cơ sở dữ liệu để kết nối với cơ sở dữ liệu. Sau đó, chúng tôi sử dụng câu lệnh đã chuẩn bị để gọi thủ tục được lưu trữ. Sau đó, chúng tôi đã sử dụng câu lệnh SELECT để tìm nạp các giá trị từ các biến người dùng Hãy lưu mã trong “ret_multiple. php” và chạy nó trong trình duyệt Chúng tôi nhận được đầu ra sau trong trình duyệt Gọi thủ tục lưu sẵn trong PhpNhư bạn có thể thấy, chúng tôi đã nhận được đầu ra mong đợi Phần kết luậnTrong hướng dẫn này, Chúng tôi đã học cách trả về nhiều giá trị từ một thủ tục được lưu trữ. Cùng với nó, chúng ta đã thấy một ví dụ trong đó chúng ta gọi là thủ tục được lưu trữ, thủ tục này trả về nhiều giá trị trong PHP và được hiển thị trong trình duyệt. Tôi hy vọng hướng dẫn này hữu ích cho bạn. Hẹn gặp lại bạn trong bài hướng dẫn tiếp theo SQL có thểTrả về dữ liệu bằng tham số đầu ra. Nếu bạn chỉ định từ khóa đầu ra cho một tham số trong định nghĩa thủ tục, thủ tục có thể trả về giá trị hiện tại của tham số cho chương trình gọi khi thủ tục thoát .
Chúng ta có thể trả về một giá trị trong thủ tục không?Một thủ tục được lưu trữ không có giá trị trả về nhưng có thể tùy ý nhận các tham số đầu vào, đầu ra hoặc đầu vào-đầu ra. Một thủ tục được lưu trữ có thể trả về đầu ra thông qua bất kỳ tham số đầu ra hoặc đầu vào-đầu ra nào.
Một thủ tục được lưu trữ có thể trả về một tập kết quả không?Ngoài việc trả về các tham số đầu ra, thủ tục lưu sẵn có thể trả về tập kết quả (nghĩa là bảng kết quả được liên kết với con trỏ được mở . Sau đó, ứng dụng có thể đưa ra các yêu cầu tìm nạp để đọc các hàng của con trỏ tập hợp kết quả.
Một thủ tục được lưu trữ có thể trả về một bảng MySQL không?Bạn không thể trả về bảng từ hàm MySQL. Hàm có thể trả về chuỗi, số nguyên, char, v.v. Để trả về bảng từ MySQL, hãy sử dụng thủ tục lưu sẵn, không phải hàm . |