Lớp mongo không tìm thấy php

PHP dường như xác nhận rằng tiện ích mở rộng đang chạy đúng vì đoạn mã sau xác nhận nó đã được tải

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";

Ngoài ra, phpinfo[] cho thấy tiện ích mở rộng mongodb đã được tải

CẬP NHẬT. vấn đề của tôi vẫn chưa được giải quyết

phpinfo[] cho thấy rõ ràng rằng trình điều khiển đã được tải

Nhưng tôi vẫn nhận được cùng một lỗi nghiêm trọng

- stackoverflow. com

ghi bàn. 91

câu trả lời được chấp nhận

TL; DR

Lớp

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
0 là một phần của mongo gói PECL kế thừa nhưng không còn là gói mongodb cập nhật

Và vì bạn đã cài đặt tiện ích mở rộng

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
1 chứ không phải tiện ích mở rộng
echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
0, đây là lý do tại sao bạn gặp lỗi

Fatal error: Class 'MongoClient' not found

Trên MongoDB PHP driver github repo, ghi chú phát hành về phiên bản 1. 0. 0, đang đề xuất các nhà phát triển sử dụng

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
1 thay vì
echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
0

Các thay đổi từ tiện ích mở rộng mongo kế thừa của chúng tôi

Đáng kể nhất, các lớp MongoClient, MongoDB và MongoCollection của trình điều khiển kế thừa đã bị lỗi thời bởi lớp MongoDB\Driver\Manager, đây là cổng mới để kết nối và thực hiện các truy vấn, lệnh và thao tác ghi

Nguồn. https. //github. com/mongodb/mongo-php-driver/releases/tag/1. 0. 0

Vì vậy, đây là tài liệu về lớp thay thế và đoạn mã sẽ thay thế tài liệu của bạn

$m = new MongoDB\Driver\Manager["mongodb://localhost:27017"];

Vì tài liệu đang nhắc nó, nên lớp này không được dùng nữa

Cảnh báo Tiện ích mở rộng xác định lớp này không được dùng nữa. Thay vào đó, nên sử dụng tiện ích mở rộng MongoDB. Các lựa chọn thay thế cho lớp này bao gồm

Nguồn. http. //php. mạng/MongoClient

Từ những gì tôi đọc trên lịch sử phát hành kho lưu trữ github của họ, lớp bạn đang cố sử dụng đã lỗi thời kể từ phiên bản

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
3, vì vậy, trên phiên bản
echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
4 của bạn, lớp này thậm chí không còn là một phần của
echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
5 nữa

Điều đó được xác nhận bởi vấn đề này trên github của họ

derickr đã nhận xét vào ngày 16 tháng 4

MongoClient là một lớp từ trình điều khiển kế thừa cũ và không được cho là có sẵn trong lớp này. Trình điều khiển mới có \MongoDB\Driver\Manager và thư viện đi kèm có \MongoDB\Client

Bạn cần cài đặt tiện ích mở rộng kế thừa cũ [pecl install mongo] và sử dụng PHP 5. x hoặc cập nhật mã của bạn để sử dụng các lớp trình điều khiển mới này vì trình điều khiển cũ không khả dụng cho PHP 7. Có hướng dẫn nâng cấp tại http. //mongodb. github. io/mongo-php-library/upgrade-guide/

Nguồn.

Một cách khác, như được đề xuất bởi thành viên MongoDB được trích dẫn ở trên là sử dụng phần mở rộng pecl này. https. //pecl. php. net/gói/mongo thay vì https. //pecl. php. net/package/mongodb nhưng cũng xin lưu ý cảnh báo nêu rõ

Gói này đã được thay thế, nhưng vẫn được duy trì để sửa lỗi và bảo mật

ghi bàn. 0

MongoDB[mongo-php-library] và MongoClient[ext-mongo] là các phần mở rộng khác nhau. Tiện ích mở rộng MongoClient không được dùng nữa. Nếu bạn muốn sử dụng các lớp liên quan đến MongoClient[ext-mongo], hãy sử dụng một trình bao bọc như thế này;

Vậy là mình đã cài xong php_mongodb. dll từ php_mongodb-1. 2. 5-5. 6-ts-vc11-x64. nén vào "C. \wamp64\bin\php\php5. 6. 25\ext\". Tôi đã thêm tiện ích mở rộng. dll trong php. ban đầu

Khi tôi chạy php. exe, không có gì sai, bất kỳ cảnh báo nào. Nhưng Mongodb không xuất hiện trong danh sách các phần mở rộng php [phpinfo[]]

Ngoài ra, chỉ mục của tôi. php trả về "Lỗi nghiêm trọng. Lớp 'Mongo' không tìm thấy trong C. \wamp64\www\scripts\index. php trên dòng 47". Dòng 47.

echo extension_loaded["mongodb"] ? "loaded\n" : "not loaded\n";
3

  • Phiên bản Apache. 2. 4. 23
  • Phiên bản PHP. 5. 6. 25
  • hệ điều hành. cửa sổ 10
  • ẩm ướt. Phiên bản 3. 0. 6 - 64bit

Tôi đã thử php_mongodb rồi. dll hoặc php_mongo. dll, các phiên bản khác nhau. Nhưng bây giờ, tôi có bất kỳ ý tưởng

Nếu ai đó có giải pháp để đề xuất, anh ấy sẽ được chào đón. Cảm ơn bạn trước

- stackoverflow. com

ghi bàn. 0

câu trả lời được chấp nhận

Cuối cùng, tôi tìm thấy một giải pháp. dll bên phải

Thực ra mình phải dùng MongoDB PHP Driver trên Windows. Sau đó thêm extension=php_mongodb. dll vào php. ban đầu. Và tải xuống tệp tương ứng từ mongodb 1. 2. 5, trong trường hợp này là 5. 6 Chủ Đề An Toàn [TS] x64

Chủ Đề