WPDB chuẩn bị - như% - giữ chỗ?


9

Là những {xxx...}giữ chỗ cho %trong một tuyên bố THÍCH bình thường? Nếu vậy, khi nào họ được chuyển đổi trở lại %?

SHELL
wp> global $wpdb;
wp> $q = "%s";
=> string(2) "%s"
wp> $pq = $wpdb->prepare($q, '%hi%');
=> string(136) "'{6e039dc0b074a5ff6828a070d0c24708d132341f32dff55a053f1410beabaacd}hi{6e039dc0b074a5ff6828a070d0c24708d132341f32dff55a053f1410beabaacd}'"

Câu trả lời:


12

Vâng, họ bình thường. Chúng đã được thêm vào 4.8.3 để sửa lỗ hổng SQL SQL.

Bạn có thể đọc một bài viết mô tả các lý do kỹ thuật cho điều này xảy ra ở đây và vé cho sự thay đổi ở đây .

Các nhân vật giữ chỗ được thay thế bằng các nhân vật ngẫu nhiên trên dòng cuối cùng của $wpdb->prepare()các $wpdb->add_placeholder_escape()chức năng, trong đó kêu gọi $wpdb->placeholder_escape()trong nội bộ.

Các trình giữ chỗ này được loại bỏ $wpdb->query()bởi $wpdb->remove_placeholder_escape()chức năng được thêm dưới dạng bộ lọc vào queryhook.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.