MongoDB和PHP错误通知:未定义索引:变量
我正在尝试创建一个表单,在其中我将使用MongoDB和PHP添加数据、删除和更新。 但现在我被更新部分卡住了。 我一单击更新按钮,它就会抛出以下错误并删除所有以前存在的记录数据 这是update.php文件MongoDB和PHP错误通知:未定义索引:变量,php,html,mongodb,mongodb-query,xampp,Php,Html,Mongodb,Mongodb Query,Xampp,我正在尝试创建一个表单,在其中我将使用MongoDB和PHP添加数据、删除和更新。 但现在我被更新部分卡住了。 我一单击更新按钮,它就会抛出以下错误并删除所有以前存在的记录数据 这是update.php文件 <?php require 'vendor/autoload.php'; $conn=new MongoDB\Client("mongodb://localhost:27017"); $db=$conn->project; $collection=$db-
<?php
require 'vendor/autoload.php';
$conn=new MongoDB\Client("mongodb://localhost:27017");
$db=$conn->project;
$collection=$db->notes;
if(!empty($_GET['id'])){
$id = $_GET['id'];
$id =new MongoDB\BSON\ObjectId($id);
$docs=$collection->findOne(array('_id'=>$id));
?>
<?php
try{
if(isset($_POST['update'])){
$collection->updateOne(
array('_id' => $id),
array(
'$set' => array(
'author' => $_POST['author'],
'subject' => $_POST['subject'],
'title' => $_POST['title'],
'notes' => $_POST['notes'],
'difficulty' => $_POST['difficulty'],
'rel_topic' => $_POST['rel_topic']
)
)
);
echo " Updated successfully";
// header("location:real.php");
}
}
catch(Exception $e){
echo 'Error '.$e->getMessage();
}
}
?>
<form method="post">
<p>ID: <?php echo $docs['_id']?></p>
Author:<input type='text' id='author' value='<?php echo $docs['author']?>'/><br>
Title:<input type='text' id='title' value='<?php echo $docs['title']?>'/><br>
Subject:<input type='text' id='subject' value='<?php echo $docs['subject']?>'/><br>
Notes:<input type='text' id='notes' value='<?php echo $docs['notes']?>'/><br>
Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty']?>'/><br>
Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic']?>'/><br>
<button type="submit" name="update">Update</button>
</form>
请帮帮我 您的输入必须具有“name”属性
Author:<input type='text' name='author' value='<?php echo $docs['author']?>'/><br>
2种方式:
在一次isset通话中检查所有按键:
if(isset($\u POST['author'],$\u POST['subject']){
创建循环并在缺少键时引发异常:
foreach(['author','subject']作为$key){
如果(isset($\u POST[$key])){
抛出新异常(“缺少键“$Key”);
}
}
在if条件之前,在顶部将docs变量初始化为空数组-
$docs = [];
然后,将其替换为html-
<form method="post">
<p>ID: <?php echo $docs['_id'] ?? ''; ?></p>
Author:<input type='text' id='author' value='<?php echo $docs['author'] ?? ''; ?>'/><br>
Title:<input type='text' id='title' value='<?php echo $docs['title'] ?? ''; ?>'/><br>
Subject:<input type='text' id='subject' value='<?php echo $docs['subject'] ?? ''; ?>'/><br>
Notes:<input type='text' id='notes' value='<?php echo $docs['notes'] ?? ''; ?>'/><br>
Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty'] ?? ''; ?>'/><br>
Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic'] ?? ''; ?>'/><br>
<button type="submit" name="update">Update</button>
</form>
身份证:
作者:这回答了你的问题吗?很高兴知道,你能接受这个答案吗?
$docs = [];
<form method="post">
<p>ID: <?php echo $docs['_id'] ?? ''; ?></p>
Author:<input type='text' id='author' value='<?php echo $docs['author'] ?? ''; ?>'/><br>
Title:<input type='text' id='title' value='<?php echo $docs['title'] ?? ''; ?>'/><br>
Subject:<input type='text' id='subject' value='<?php echo $docs['subject'] ?? ''; ?>'/><br>
Notes:<input type='text' id='notes' value='<?php echo $docs['notes'] ?? ''; ?>'/><br>
Difficulty:<input type='text' id='difficulty' value='<?php echo $docs['difficulty'] ?? ''; ?>'/><br>
Related Topic:<input type='text' id='rel_topic' value='<?php echo $docs['rel_topic'] ?? ''; ?>'/><br>
<button type="submit" name="update">Update</button>
</form>