Asked Jun 28th, 2018 4:39 AM 186 0 1
  • 186 0 1
0

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

Share
  • 186 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! !

Tran Duc Thang @thangtd90
Jun 28th, 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
Jun 28th, 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
Vinh Nguyen @vinhnguyen
Jun 28th, 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
Jun 28th, 2018 2:26 PM

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

0
| Reply
Share
Vinh Nguyen @vinhnguyen
Jun 28th, 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
Jun 29th, 2018 5:09 AM

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

0
| Reply
Share
Jun 29th, 2018 5:11 AM

4.png

0
| Reply
Share
Tran Duc Thang @thangtd90
Jul 2nd, 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 Jun 28th, 2018 7:17 AM
0

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

$client = new \MongoDB\Client()
$database = $client->selectDatabase('test')
Share
Jun 28th, 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
Jun 28th, 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
Jun 28th, 2018 7:38 AM

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

0
| Reply
Share
Jun 28th, 2018 7:40 AM

2.png

0
| Reply
Share
Jun 28th, 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