2017-04-10 6 views
0

저는 mLab에 익숙하며 동일한 간단한 문서를 mLab의 mongodb에 삽입하려고합니다.PHP는 문서를 삽입합니다. mLab

Fatal error: Uncaught MongoDB\Driver\Exception\ConnectionTimeoutException: 
No suitable servers found (`serverSelectionTryOnce` set): [connection timeout calling ismaster on 'ds157390.mlab.com:57390'] in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php:726 
Stack trace: #0 C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php(726): MongoDB\Driver\Manager->selectServer(Object(MongoDB\Driver\ReadPreference)) 
#1 C:\xampp\htdocs\MongoDB\azureConnect.php(46): MongoDB\Collection->insertMany(Array) #2 {main} thrown in C:\xampp\htdocs\MongoDB\vendor\mongodb\mongodb\src\Collection.php on line 726 

PHP 코드 :

<?php 

ini_set('max_execution_time', 0); 

require 'vendor/autoload.php'; 

$seedData = array(
    array(
    'decade' => '1970s', 
    'artist' => 'Debby Boone', 
    'song' => 'You Light Up My Life', 
    'weeksAtOne' => 10 
), 
array(
    'decade' => '1980s', 
    'artist' => 'Olivia Newton-John', 
    'song' => 'Physical', 
    'weeksAtOne' => 10 
), 
array(
    'decade' => '1990s', 
    'artist' => 'Mariah Carey', 
    'song' => 'One Sweet Day', 
    'weeksAtOne' => 16 
), 
); 

$uname = "test"; 
$pword = "test"; 
$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate"; 

$conn = new MongoDB\Client($uri); 

$songs = $conn->data4estate->songs; 

$songs->insertMany($seedData); 

답변

0

우선 나는 쉘 (명령 행)를 사용하여 데이터베이스 내가 코드를 실행 언제 내가이 오류로 일부 문서를 삽입 할 수 있었다 연결 timout에 대한 지시를 따르도록하십시오 :

https://blog.mlab.com/2013/10/do-you-want-a-timeout/

시도를 사기 위해 시간 제한 옵션을 설정 단원을 문자열 https://docs.mongodb.com/manual/reference/connection-string/#uri.connectTimeoutMS

$uri = "mongodb://".$uname.":".$pword."@ds157390.mlab.com:57390/data4estate?connectTimeoutMS=300000"; 
답이 여기로

당신은 PHP는 MongoClient에 socketTimeoutMS을 설정할 수 있습니다 PHP MongoDb driver: How to set timeout for executing a code

+0

내가 이미 시도했지만 여전히 작동하지 않습니다 –