windows下為php7.0.4安裝目前官方版本對應的最新的php_mongodb.dll擴充,該擴充版本為1.1.6,支援最高版本MongoDB3.2,支援php7.0,;在phpinfo中可以看到MongoDB擴充,
但是在沒有使用命名空間的情況下,new MongoClient();出現如下錯誤
Fatal error: Uncaught Error: Class 'MongoClient' not found in E:\.......... 這是為什嗎??請問
版本支援如(注意mongodb1.1那一行)
1、擴充對MOngoDB版本的支援
2、擴充對php版本的支援
回複討論(解決方案)
沒用過,不好說
不過你怎麼知道就一定有 MongoClient 類呢?
你至少需要
print_r(get_extension_funcs('mongodb'));
看一下該擴充中提供了那些函數
print_r(get_declared_classes());
看一下預定義類中是否有你需要(或相似)的類名
php.net的官方文檔是這麼用的new MongoClient()
我也不清楚是否有這類,是不是我沒有安裝對應的VC?
vc14的下載地址是什麼,怎麼在網上找不到
@xuzuning
我不是讓你看一下嗎?
手邊的事情就那麼難?
Array
(
[0] => MongoDB\BSON\fromPHP
[1] => MongoDB\BSON\toPHP
[2] => MongoDB\BSON\toJSON
[3] => MongoDB\BSON\fromJSON
)
Array
(
[0] => stdClass
[1] => Exception
[2] => ErrorException
[3] => Error
[4] => ParseError
[5] => TypeError
[6] => ArithmeticError
[7] => DivisionByZeroError
[8] => Closure
[9] => Generator
[10] => ClosedGeneratorException
[11] => DateTime
[12] => DateTimeImmutable
[13] => DateTimeZone
[14] => DateInterval
[15] => DatePeriod
[16] => LogicException
[17] => BadFunctionCallException
[18] => BadMethodCallException
[19] => DomainException
[20] => InvalidArgumentException
[21] => LengthException
[22] => OutOfRangeException
[23] => RuntimeException
[24] => OutOfBoundsException
[25] => OverflowException
[26] => RangeException
[27] => UnderflowException
[28] => UnexpectedValueException
[29] => RecursiveIteratorIterator
[30] => IteratorIterator
[31] => FilterIterator
[32] => RecursiveFilterIterator
[33] => CallbackFilterIterator
[34] => RecursiveCallbackFilterIterator
[35] => ParentIterator
[36] => LimitIterator
[37] => CachingIterator
[38] => RecursiveCachingIterator
[39] => NoRewindIterator
[40] => AppendIterator
[41] => InfiniteIterator
[42] => RegexIterator
[43] => RecursiveRegexIterator
[44] => EmptyIterator
[45] => RecursiveTreeIterator
[46] => ArrayObject
[47] => ArrayIterator
[48] => RecursiveArrayIterator
[49] => SplFileInfo
[50] => DirectoryIterator
[51] => FilesystemIterator
[52] => RecursiveDirectoryIterator
[53] => GlobIterator
[54] => SplFileObject
[55] => SplTempFileObject
[56] => SplDoublyLinkedList
[57] => SplQueue
[58] => SplStack
[59] => SplHeap
[60] => SplMinHeap
[61] => SplMaxHeap
[62] => SplPriorityQueue
[63] => SplFixedArray
[64] => SplObjectStorage
[65] => MultipleIterator
[66] => ReflectionException
[67] => Reflection
[68] => ReflectionFunctionAbstract
[69] => ReflectionFunction
[70] => ReflectionGenerator
[71] => ReflectionParameter
[72] => ReflectionType
[73] => ReflectionMethod
[74] => ReflectionClass
[75] => ReflectionObject
[76] => ReflectionProperty
[77] => ReflectionExtension
[78] => ReflectionZendExtension
[79] => SessionHandler
[80] => __PHP_Incomplete_Class
[81] => php_user_filter
[82] => Directory
[83] => AssertionError
[84] => ZipArchive
[85] => LibXMLError
[86] => DOMException
[87] => DOMStringList
[88] => DOMNameList
[89] => DOMImplementationList
[90] => DOMImplementationSource
[91] => DOMImplementation
[92] => DOMNode
[93] => DOMNameSpaceNode
[94] => DOMDocumentFragment
[95] => DOMDocument
[96] => DOMNodeList
[97] => DOMNamedNodeMap
[98] => DOMCharacterData
[99] => DOMAttr
[100] => DOMElement
[101] => DOMText
[102] => DOMComment
[103] => DOMTypeinfo
[104] => DOMUserDataHandler
[105] => DOMDomError
[106] => DOMErrorHandler
[107] => DOMLocator
[108] => DOMConfiguration
[109] => DOMCdataSection
[110] => DOMDocumentType
[111] => DOMNotation
[112] => DOMEntity
[113] => DOMEntityReference
[114] => DOMProcessingInstruction
[115] => DOMStringExtend
[116] => DOMXPath
[117] => PDOException
[118] => PDO
[119] => PDOStatement
[120] => PDORow
[121] => SimpleXMLElement
[122] => SimpleXMLIterator
[123] => XMLReader
[124] => XMLWriter
[125] => PharException
[126] => Phar
[127] => PharData
[128] => PharFileInfo
[129] => CURLFile
[130] => finfo
[131] => MongoDB\Driver\Command
[132] => MongoDB\Driver\Cursor
[133] => MongoDB\Driver\CursorId
[134] => MongoDB\Driver\Manager
[135] => MongoDB\Driver\Query
[136] => MongoDB\Driver\ReadConcern
[137] => MongoDB\Driver\ReadPreference
[138] => MongoDB\Driver\Server
[139] => MongoDB\Driver\BulkWrite
[140] => MongoDB\Driver\WriteConcern
[141] => MongoDB\Driver\WriteConcernError
[142] => MongoDB\Driver\WriteError
[143] => MongoDB\Driver\WriteResult
[144] => MongoDB\Driver\Exception\LogicException
[145] => MongoDB\Driver\Exception\RuntimeException
[146] => MongoDB\Driver\Exception\UnexpectedValueException
[147] => MongoDB\Driver\Exception\InvalidArgumentException
[148] => MongoDB\Driver\Exception\ConnectionException
[149] => MongoDB\Driver\Exception\AuthenticationException
[150] => MongoDB\Driver\Exception\SSLConnectionException
[151] => MongoDB\Driver\Exception\WriteException
[152] => MongoDB\Driver\Exception\BulkWriteException
[153] => MongoDB\Driver\Exception\ExecutionTimeoutException
[154] => MongoDB\Driver\Exception\ConnectionTimeoutException
[155] => MongoDB\BSON\Binary
[156] => MongoDB\BSON\Javascript
[157] => MongoDB\BSON\MaxKey
[158] => MongoDB\BSON\MinKey
[159] => MongoDB\BSON\ObjectID
[160] => MongoDB\BSON\Regex
[161] => MongoDB\BSON\Timestamp
[162] => MongoDB\BSON\UTCDateTime
[163] => mysqli_sql_exception
[164] => mysqli_driver
[165] => mysqli
[166] => mysqli_warning
[167] => mysqli_result
[168] => mysqli_stmt
[169] => SoapClient
[170] => SoapVar
[171] => SoapServer
[172] => SoapFault
[173] => SoapParam
[174] => SoapHeader
[175] => SQLite3
[176] => SQLite3Stmt
[177] => SQLite3Result
[178] => XSLTProcessor
)
與MongoDB有關的就這幾個而已
找到原因了,是因為舊版的php_mongo.dll才是使用MongoClient類來實現串連,新版的php_mongodb.dll是使用 MongoDB\Driver\Manager來串連的;注意該類命名空間不能省略。
這是舊版的參考文檔 http://php.net/manual/zh/book.mongo.php
這是新版的參考文檔 http://php.net/manual/zh/book.mongodb.php
下面是新版的使用方法:
$con = new MongoDB\Driver\Manager('mongodb://127.0.0.1:27017');$query = new MongoDB\Driver\Query([]);$cursor = $con->executeQuery('databaseName.collectionName',$query);$it = new IteratorIterator($cursor);$it->rewind();while ($doc=$it->current()) {print_r($doc);$it->next();echo '
';}