Asked thg 6 28, 2018 4:39 AM 287 0 1
  • 287 0 1
0

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

Share
  • 287 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 AM

@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. 😄

0
| Reply
Share
thg 6 28, 2018 7:04 AM

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

0
| Reply
Share
Avatar Vinh Nguyen @vinhnguyen
thg 6 28, 2018 10:47 AM

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

$ php --ri mongodb
+1
| Reply
Share
thg 6 28, 2018 2:26 PM

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

0
| Reply
Share
Avatar Vinh Nguyen @vinhnguyen
thg 6 28, 2018 3:41 PM

@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.

+1
| Reply
Share
thg 6 29, 2018 5:09 AM

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

0
| Reply
Share
thg 6 29, 2018 5:11 AM

4.png

0
| Reply
Share
Avatar Tran Duc Thang @thangtd90
thg 7 2, 2018 1:39 AM

@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.

0
| Reply
Share

1 ANSWERS


Answered thg 6 28, 2018 7:17 AM
0

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

$client = new \MongoDB\Client()
$database = $client->selectDatabase('test')
Share
thg 6 28, 2018 7:19 AM

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ả 😦

0
| Reply
Share
thg 6 28, 2018 7:29 AM

@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
0
| Reply
Share
thg 6 28, 2018 7:38 AM

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

0
| Reply
Share
thg 6 28, 2018 7:40 AM

2.png

0
| Reply
Share
thg 6 28, 2018 7:42 AM

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

0
| Reply
Share
Viblo
Let's register a Viblo Account to get more interesting posts.