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 '
'; }