Yêu cầu thg 6 28, 2018 4:39 SA 374 0 1
  • 374 0 1
0

lỗi Call to undefined method MongoClient::selectDatabase()

Chia sẻ
  • 374 0 1

mình đang muốn lưu file lên mongodb(cụ thể là 1 file ảnh) bằng cách sử dụng MongoClient. Tuy nhiên, khi chọn file upload rồi ấn submit thì nó lại báo lỗi Call to undefined method MongoClient::selectDatabase(). Code của mình đây, có cao nhân nào trợ giúp với! !

Avatar Tran Duc Thang @thangtd90
thg 6 28, 2018 6:28 SA

@catbuidem Bạn có thể chia sẻ thêm xem bạn đang dùng package MongoDB gì vậy,

và đoạn code ở phần trên cùng, lúc bạn khai báo sử dụng namespace được không 🤔

P/S: không liên quan đế lỗi bạn đang gặp, nhưng ở dòng 175 trong hình, thì bạn viết sai tên biến $dataBase thành $dataBast kìa 😄 Ngoài ra, database là một danh từ, nên mình nghĩ nên đặt tên biến là $database thôi, không cần viết hoa chữ B đâu. 😄

thg 6 28, 2018 7:04 SA

mình cài gói mongodb/mongodb với composer. Phần code trên cùng thì ko có liên quan đâu bạn, Còn cái namespace thì mình chưa có khai báo gì cả bởi trên document của mongo không thấy gi. Bạn có thể chỉ rõ hơn cho mình có được ko? Toàn bộ phần code cho cái này thì chỉ có ảnh ở trên cộng với ảnh này thôi! 1.png

Avatar Mango @vinhnguyen
thg 6 28, 2018 10:47 SA

Bạn kiểm tra lại xem mongodb driver cho PHP có hoạt động không? Refercence

$ php --ri mongodb
thg 6 28, 2018 2:26 CH

@vinhnguyen oh.Của mình nó báo là Extension 'mongodb' not present

Avatar Mango @vinhnguyen
thg 6 28, 2018 3:41 CH

@catbuidem thế bạn chưa cài mongodb extension cho PHP rồi. Bạn thử theo hướng dẫn mình gửi ở trên xem sao.

thg 6 29, 2018 5:09 SA

Mình làm theo hướng dẫn xong vẫn bị 😦

thg 6 29, 2018 5:11 SA

4.png

Avatar Tran Duc Thang @thangtd90
thg 7 2, 2018 1:39 SA

@catbuidem Như trong hình ảnh ở trên thì bạn vẫn đang gặp lỗi load extension mongodb kìa 😄

Không load được nó thì sao bạn gọi được những hàm liên quan đến mongodb được define ở trong đấy. Bạn xem lại cách thức cài đặt, và kiểm tra lại config php xem sao.

1 CÂU TRẢ LỜI


Đã trả lời thg 6 28, 2018 7:17 SA
0

Mình tưởng là thế này chứ nhỉ:

$client = new \MongoDB\Client()
$database = $client->selectDatabase('test')
Chia sẻ
thg 6 28, 2018 7:19 SA

mình có gọi như thế lúc trước. Nhưng nó báo là class not found. Chuyển thành như kia thì được. Cơ mà nó lại báo là ko tìm thấy phương thức nào tên selectDatabase cả 😦

thg 6 28, 2018 7:29 SA

@catbuidem Bạn thử lại với code của mình ở trên rồi chạy lệnh này trên terminal xem có bị ClassNotFound nữa không:

composer dump-autoload
thg 6 28, 2018 7:38 SA

nó báo LÀ : Class 'MongoDB\Driver\Manager' not found 😦

thg 6 28, 2018 7:40 SA

2.png

thg 6 28, 2018 7:42 SA

chạy composer như lệnh của bạn thì nó ra như này! 3.png

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí