Sử dụng foreach
cách tiếp cận từ câu trả lời của tôi
cho một câu hỏi khác của bạn không phải là một ý kiến hay khi xử lý các thủ tục được lưu trữ.
Mặc dù nó hoạt động (như được hiển thị trong câu hỏi của bạn, các biến được đặt trong $params
mảng sau khi thực thi) vấn đề lớn nhất là bạn phải cung cấp tham số thứ tư (maxlength
) thành oci_bind_by_name
. Bạn đã sử dụng giá trị tĩnh là 32
trong mã của bạn, nhưng lỗi xuất hiện khi độ dài của một giá trị vượt quá giá trị này. Nó không thể được tính toán trong thời gian chạy và việc đặt nó thành một giá trị rất lớn là không hiệu quả (có thể đây không phải là vấn đề đối với ứng dụng của bạn).
Vì bạn đang chạy một thủ tục được lưu trữ đã biết, bạn nên biết maxlength
giá trị đầu ra tại thời điểm thiết kế và những giá trị này có thể được nhập tĩnh bằng cách đặt tất cả oci_*
các hàm trong getHours()
, thay vì cố gắng tóm tắt tất cả các lệnh gọi đến customExecute()
.