我有一个PHP脚本,其中包含以下代码:
$m = new MongoClient(Settings::$db);
$db = $m->db;
// get the 'customers' collection
$customers = $db->customers;
// determine if this customer already exists
$c = $customers.findOne(array('email' => $email)); <--- throws
if (is_null($c)) {
$customers.insert(array(
'email' => $email,
'firstname' => $firstName,
'lastname' => $lastName
));
}
// get the 'payments' collection
$payments = $db->payments;
// add a record
$payments->insert(array(
'email' => $email,
'firstname' => $firstName,
'lastname' => $lastName,
'amount' => $price,
'token' => $token
));
但它引发了错误:
PHP致命错误:在...中调用未定义的函数findOne()
现在,我已经下载了ext
目录并将其复制到php_mongo.dll
目录中。此外,我已将此行添加到php.ini
:
extension=php_mongo.dll
我已经多次重启服务器了。
我真的觉得这样findOne
方法不可用,因为php_mongo
扩展名未加载。但另一方面,它不会抛出创建MongoClient
,抓取数据库和集合时也不会抛出。
这里发生了什么?
答案 0 :(得分:1)
我认为dot是错误的。
$c = $customers->findOne(array('email' => $email));
答案 1 :(得分:1)
根据我的评论,你可能错误地使用了另一种语言的方法访问语法:
此
$c = $customers.findOne(array('email' => $email));
是PHP,所以你需要对象操作符而不是点:
$c = $customers->findOne(array('email' => $email));