如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在
Posted
技术标签:
【中文标题】如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在【英文标题】:How do you properly check for an existing data in MongoDB Atlas database using PHP. I always get thet the name already exists 【发布时间】:2021-12-13 15:06:58 【问题描述】: $query = ['name' => $name];
$options = [];
$queryDriver = new MongoDB\Driver\Query($query, $options);
$execute = $conn->executeQuery('db.collection', $queryDriver);
//validation if a user exists
if (!empty($execute))
$err['name'] = 'this name already exists';
else
echo 'this name doesnt exist';
我正在尝试创建一个注册表单,但我无法验证名称是否已存在。
【问题讨论】:
你好,请写一个摘要标题,并将其余的解释放在正文中。祝你好运??? 【参考方案1】:您的问题与数据库查询结果无关。在您的代码中,您在第一行
$query = ['name' => $name];
在脚本的最后,您正在检查
if (!empty($query))
此时$query 不为空(它是['name' => $name]
)。
不是验证查询结果,而是验证查询条件。
【讨论】:
已尝试将执行的查询放在if (!empty($execute))
,但由于该命令执行查询,它仍然不起作用
正如您在手册 (php.net/manual/en/mongodb-driver-manager.executequery.php) 方法中看到的,executeQuery 返回 MongoDB\Driver\Cursor,它也不为空。您可以这样做:$users = $conn->executeQuery('db.collection', $queryDriver)->toArray(); if (count($users) > 0) ...
检查名称为 $name
的用户是否存在
非常感谢您,现在它可以工作了。我不知道您可以将其转换为数组。一直在查看本手册,似乎我还没有知道如何正确使用手册。谢谢以上是关于如何使用 PHP 正确检查 MongoDB Atlas 数据库中的现有数据。我总是知道名字已经存在的主要内容,如果未能解决你的问题,请参考以下文章
如何在 MongoDB 中正确使用 $geoIntersects?
如何使用 PHP 和正则表达式检查输入值是不是正确? [复制]