0

我有一个小的 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() in ...

现在,我已将文件下载并复制到ext目录中php_mongo.dll。此外,我已将此行添加到php.ini

extension=php_mongo.dll

而且我已经多次重新启动服务器。

我真的觉得这种findOne方法不可用,因为php_mongo没有加载扩展。但另一方面,在创建时不扔MongoClient,在抓取数据库和集合时也不扔。

这里发生了什么?

4

2 回答 2

1

我认为点是错误。试试

$c = $customers->findOne(array('email' => $email)); 
于 2013-09-27T05:22:01.363 回答
1

根据我的评论,您可能错误地使用了另一种语言的方法访问语法:

这个

$c = $customers.findOne(array('email' => $email));

唉 PHP 所以你需要对象运算符而不是点:

$c = $customers->findOne(array('email' => $email));
于 2013-09-27T05:26:09.933 回答