【发布时间】:2019-04-06 06:48:42
【问题描述】:
我正在尝试使用 php 显示数据库“hospitaldb”,收集“医生”内容。我在集合中有电子邮件、密码、fname、lname 字段。当我尝试显示这些字段时,我收到错误消息:
注意:未定义索引:第 40 行 C:\xampp\htdocs\phpmongodb\viewdoctor.php 中的电子邮件
注意:未定义索引:第 41 行 C:\xampp\htdocs\phpmongodb\viewdoctor.php 中的密码
注意:未定义索引:第 42 行 C:\xampp\htdocs\phpmongodb\viewdoctor.php 中的 fname
注意:未定义索引:第 43 行 C:\xampp\htdocs\phpmongodb\viewdoctor.php 中的 lname
$server = "mongodb://localhost:27017/hospitaldb";
try{
$connection = new MongoDB\Client($server);
/*$hospitaldb = $connection->test;*/
$hospitaldb = $connection->hospitaldb;
}catch (MongoConnectionException $ConErrMsg)
{
echo "$ConErrMsg";
}
$data = "<table style='border:1px solid red;";
$data .= "border-collapse:collapse' border='1px'>";
$data .= "<thead>";
$data .= "<tr>";
$data .= "<th>First Name</th>";
$data .= "<th>Last Name</th>";
$data .= "<th>Email</th>";
$data .= "<th>Password</th>";
$data .= "</tr>";
$data .= "</thead>";
$data .= "<tbody>";
try{
$db = $connection->hospitaldb;
$collection = $db->doctors;
$cursor = $collection->find();
foreach ($cursor as $document)
{
$data .= "<tr>";
$data .= "<td>" . $document["email"] . "</td>";
$data .= "<td>" . $document["password"]."</td>";
$data .= "<td>" . $document["fname"]."</td>";
$data .= "<td>" . $document["lname"]."</td>";
$data .= "</tr>";
}
}catch (MongoException $mongoException)
{
echo "$mongoException";
}
输出:
object(MongoDB\Model\BSONDocument)#20 (1) {
["storage":"ArrayObject":private]=>
array(5) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#16 (1) {
["oid"]=>
string(24) "5ca746b2a930602fb8000e04"
}
["email"]=>
string(16) "sanekt@gmail.com"
["password"]=>
string(6) "sanket"
["fname"]=>
string(6) "sanket"
["lname"]=>
string(6) "sanket"
}
}
object(MongoDB\Model\BSONDocument)#22 (1) {
["storage":"ArrayObject":private]=>
array(5) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#21 (1) {
["oid"]=>
string(24) "5ca757fea930602fb8000e05"
}
["email"]=>
string(11) "p@gmail.com"
["password"]=>
string(4) "7888"
["fname"]=>
string(6) "piyush"
["lname"]=>
string(4) "shah"
}
}
object(MongoDB\Model\BSONDocument)#16 (1) {
["storage":"ArrayObject":private]=>
array(5) {
["_id"]=>
object(MongoDB\BSON\ObjectId)#20 (1) {
["oid"]=>
string(24) "5ca8444aa9306032cc001a32"
}
["email"]=>
string(17) "shahsir@gmail.com"
["password"]=>
string(7) "shahsir"
["fname"]=>
string(4) "Shah"
["lname"]=>
string(4) "Shah"
}
}
【问题讨论】:
-
错误即将到来,因为您从 $document 访问的内容不存在。你可以做 var_dump($document);死;在循环中并试图弄清楚。如果仍然不能,请在此处发布输出。
-
如果我在每个循环中都执行 var_dump($document),那么我就会得到内容。
-
请将其放入循环然后访问数据 $document = $document->toArray();请告诉我们它是否有效
-
检查 $document 中使用的索引是否与数据库中使用的列名匹配
-
是的,Sanket 正是