尝试更新mysql数据库中的字段时php抛出错误
我正在尝试编辑一个名为“分钟”的数据库表中的字段,有许多分钟集,但代码如下所示。。。会话开始设置在下面的查询中使用的当前用户currentUser=Bnumber。。。在“viewstudentminutes.php”页面上单击编辑按钮时,会抛出以下错误“注意:未定义的索引:viewstudentminutes.php中的分钟ID,位于第179行 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,在viewstudentminutes.php:179堆栈跟踪:0 viewstudentminutes.php179:PDO->准备从viewstudentminutes.php第179行中抛出的“…”1{main}”中选择* 下面是minutes.php页面上的所有代码,下面是“viewstudentminutes.php”中的代码尝试更新mysql数据库中的字段时php抛出错误,php,mysql,forms,pdo,edit,Php,Mysql,Forms,Pdo,Edit,我正在尝试编辑一个名为“分钟”的数据库表中的字段,有许多分钟集,但代码如下所示。。。会话开始设置在下面的查询中使用的当前用户currentUser=Bnumber。。。在“viewstudentminutes.php”页面上单击编辑按钮时,会抛出以下错误“注意:未定义的索引:viewstudentminutes.php中的分钟ID,位于第179行 致命错误:未捕获异常“PDOException”,消息为“SQLSTATE[42000]:语法错误或访问冲突:1064您的SQL语法有错误;查看与您的
<?php
include ("dbConnect.php");
include ("studenthead.php");
session_start();
if (!(isset($_SESSION["sess_username"]))) header ("Location: index.php");
$currentUser=$_SESSION["sess_username"];
if (isset($_POST['addMinute'])) {
$newB_number = $currentUser;
$newDate = $_POST['Date'];
$newTime = $_POST['Time'];
$newDiscussion = $_POST['Discussion'];
$newActions = $_POST['Actions'];
$newDateofnextmeeting = $_POST['Dateofnextmeeting'];
$newStatus = "Submitted";
$newE_number = $_POST['E_number'];
$newSupervisor_comments = $_POST['Supervisor_comments'];
$dbQuery = $db->prepare("insert into minute values (null, :newB_number, :newDate, :newTime, :newDiscussion, :newActions, :newDateofnextmeeting, :newStatus, :newE_number, :newSupervisor_comments )");
$dbParams = array('newB_number'=>$newB_number, 'newDate'=>$newDate, 'newTime'=>$newTime, 'newDiscussion'=>$newDiscussion, 'newActions'=>$newActions, 'newDateofnextmeeting'=>$newDateofnextmeeting, 'newStatus'=>$newStatus, 'newE_number'=>$newE_number, 'newSupervisor_comments'=>$newSupervisor_comments);
$dbQuery->execute($dbParams);
$lastInserted = $db->lastInsertId();
}
if (isset($_POST['deleteMinuteID'])) {
$ID = $_POST['deleteMinuteID'];
$dbQuery = $db->prepare("delete from minute where ID=:ID");
$dbParams = array('ID'=>$ID);
$dbQuery->execute($dbParams);
}
if (isset($_POST['editCommitID'])) {
$ID = $_POST['editCommitID'];
$editB_number = $_POST['editB_number'];
$editDate = $_POST['editDate'];
$editTime = $_POST['editTime'];
$editDiscussion = $_POST['editDiscussion'];
$editActions = $_POST['editActions'];
$editDateofnextmeeting = $_POST['editDateofnextmeeting'];
$editStatus = $_POST['editStatus'];
$editE_number = $_POST['editE_number'];
$editSupervisor_comments = $_POST['editSupervisor_comments'];
$dbQuery = $db->prepare("update minute set B_number=:B_number, Date=:Date, Time=:Time, Discussion=:Discussion, Actions=:Actions, Dateofnextmeeting=:Dateofnextmeeting, Status=:Status, E_number=:E_number, Supervisor_comments=:Supervisor_comments where ID=:ID");
$dbParams = array('ID'=>$ID, 'B_number'=>$editB_number, 'Date'=>$editDate, 'Time'=>$editTime, 'Discussion'=>$editDiscussion, 'Actions'=>$editActions, 'Dateofnextmeeting'=>$editDateofnextmeeting, 'Status'=>$editStatus, 'E_number'=>$editE_number, 'Supervisor_comments'=>$editSupervisor_comments);
$dbQuery->execute($dbParams);
header("location: minutes.php");
exit();
}
?>
<html>
<head>
<title>Minutes</title>
<h2>Minutes</h2>
<table class="table table-striped">
<thead>
<th>B Number</th><th>Date</th><th>Time</th><th>Discussion</th> <th>Actions</th><th>Date of next meeting</th><th>Status</th><th>Supervisor</th><th>Supervisor comments</th>
</thead>
<tbody>
<?php
$dbQuery = $db->prepare("select * from minute where '$currentUser'=B_number ");
$dbQuery->execute();
$numMinutes = $dbQuery->rowCount();
echo "<p>There are $numMinutes sets of minutes in the system</p>";
$oddRow=true;
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
$ID = $dbRow['ID'];
$B_number = $dbRow['B_number'];
$Date = $dbRow['Date'];
$Time = $dbRow['Time'];
$Discussion = $dbRow['Discussion'];
$Actions = $dbRow['Actions'];
$Dateofnextmeeting = $dbRow['Dateofnextmeeting'];
$Status = $dbRow['Status'];
$E_number = $dbRow['E_number'];
$Supervisor_comments = $dbRow['Supervisor_comments'];
if ($oddRow) $rowClass="odd"; else $rowClass="even";
$oddRow=!$oddRow;
if (isset($_POST['editMinuteID']) && $_POST['editMinuteID']==$ID) {
echo "<tr class='$rowClass '>
<form style='display:inline' method='post' action='minutes.php'>
<input type='hidden' name='editCommitID' value='$ID'>
<td><input type='varchar' name='editB_number' value='$B_number'></td>
<td><input type='date' name='editDate' value='$Date'></td>
<td><input type='time' name='editTime' value='$Time'></td>
<td><input type='text' name='editDiscussion' value='$Discussion'></td>
<td><input type='text' name='editActions' value='$Actions'></td>
<td><input type='date' name='editDateofnextmeeting' value='$Dateofnextmeeting'></td>
<td><input type='enum' name='editStatus' value='$Status'></td>
<td><input type='varchar' name='editE_number' value='$E_number'></td>
<td><input type='text' name='editSupervisor_comments' value='$Supervisor_comments'></td>
<td colspan='2'><input type='image' src='edit.png'>
</form>
</tr>";
} else {
echo "<tr class='$rowClass'><td>$B_number</td><td>$Date</td><td>$Time</td><td>$Discussion</td><td>$Actions</td><td>$Dateofnextmeeting</td><td>$Status</td><td>$E_number</td><td>$Supervisor_comments</td>
<td class='operation'>
<form class='display:inline' method='post' action='viewstudentminutes.php'>
<input type='hidden' name='editMinute_ID' value='$ID'>
<input type='image' src='edit.png' style='padding-top:7px'>
</form></td>
<td class='operation'>
<form class='display:inline' method='post' action='minutes.php'
onsubmit='return confirm(\"Are you sure?\")'>
<input type='hidden' name='deleteMinuteID' value='$ID'>
<input type='image' src='delete.png' style='padding-top:7px'>
</form></td>
<td class='operation'>
<form class='display:inline' method='post' action='viewstudentminutes.php' onsubmit='viewstudentminutes.php'>
<input type='image' src='view.png' style='padding-top:7px'>
<input type='hidden' name='Minute_ID' value='" . $ID . "'>
</form></td>
</tr>";
}
}
?>
以及“viewstudentminutes”中的相应代码
<?php
include ("dbConnect.php");
include ("studenthead.php");
session_start();
if (!(isset($_SESSION["sess_username"]))) header ("Location: index.php");
$currentUser=$_SESSION["sess_username"];
if (isset($_POST['addMinute'])) {
$newB_number = $currentUser;
$newDate = $_POST['Date'];
$newTime = $_POST['Time'];
$newDiscussion = $_POST['Discussion'];
$newActions = $_POST['Actions'];
$newDateofnextmeeting = $_POST['Dateofnextmeeting'];
$newStatus = "Submitted";
$newE_number = $_POST['E_number'];
$newSupervisor_comments = " ";
$dbQuery = $db->prepare("insert into minute values (null, :newB_number, :newDate, :newTime, :newDiscussion, :newActions, :newDateofnextmeeting, :newStatus, :newE_number, :newSupervisor_comments )");
$dbParams = array('$newB_number'=>$newB_number, 'newDate'=>$newDate, 'newTime'=>$newTime, 'newDiscussion'=>$newDiscussion, 'newActions'=>$newActions, 'newDateofnextmeeting'=>$newDateofnextmeeting, 'newStatus'=>$newStatus, 'newE_number'=>$newE_number, 'newSupervisor_comments'=>$newSupervisor_comments);
$dbQuery->execute($dbParams);
$lastInserted = $db->lastInsertId();
}
if (isset($_POST['editCommitID'])) {
$ID = $_POST['editCommitID'];
$editB_number = $_POST['editB_number'];
$editDate = $_POST['editDate'];
$editTime = $_POST['editTime'];
$editDiscussion = $_POST['editDiscussion'];
$editActions = $_POST['editActions'];
$editDateofnextmeeting = $_POST['editDateofnextmeeting'];
$editStatus = $_POST['editStatus'];
$editE_number = $_POST['editE_number'];
$editSupervisor_comments = $_POST['editSupervisor_comments'];
$dbQuery = $db->prepare("update minute set B_number=:B_number, Date=:Date, Time=:Time, Discussion=:Discussion, Actions=:Actions, Dateofnextmeeting=:Dateofnextmeeting, Status=:Status, E_number=:E_number, Supervisor_comments=:Supervisor_comments where ID=:ID");
$dbParams = array('ID'=>$ID, 'B_number'=>$editB_number, 'Date'=>$editDate, 'Time'=>$editTime, 'Discussion'=>$editDiscussion, 'Actions'=>$editActions, 'Dateofnextmeeting'=>$editDateofnextmeeting, 'Status'=>$editStatus, 'E_number'=>$editE_number, 'Supervisor_comments'=>$editSupervisor_comments);
$dbQuery->execute($dbParams);
header("location: viewstudentminutes.php");
exit();
}
?>
<html>
<head>
<title>Minutes</title>
<h2>Minutes</h2>
<table class="table table-condensed">
<?php
$dbQuery= $db->prepare("SELECT * FROM `Minute` WHERE `B_number` = '" . $currentUser . "' AND `id` = " . $_POST['Minute_ID']);
$dbQuery->execute();
$oddRow=true;
while ($dbRow = $dbQuery->fetch(PDO::FETCH_ASSOC)) {
$ID = $dbRow['ID'];
$B_number = $dbRow['B_number'];
$Date = $dbRow['Date'];
$Time = $dbRow['Time'];
$Discussion = $dbRow['Discussion'];
$Actions = $dbRow['Actions'];
$Dateofnextmeeting = $dbRow['Dateofnextmeeting'];
$Status = $dbRow['Status'];
$E_number = $dbRow['E_number'];
$Supervisor_comments = $dbRow['Supervisor_comments'];
if ($oddRow) $rowClass="odd"; else $rowClass="even";
$oddRow=!$oddRow;
if (isset($_POST['editMinuteID']) && $_POST['editMinuteID']==$id) {
echo "<tr class='$rowClass'>
<form style='display:inline' method='post' action='viewstudentminutes.php'>
<input type='hidden' name='editCommitID' value='$ID'>
<tr><td colspan='2'><input type='image' src='edit.png'></tr>
<tr><th>BNumber</th><td><input type='varchar' name='editB_number' value='$B_number'></td></tr>
<tr><th>Date</th><td><input type='date' name='editDate' value='$Date'></td></tr>
<tr><th>Time</th><td><input type='time' name='editTime' value='$Time'></td></tr>
<tr><th>Discussion</th><td><input type='text' name='editDiscussion' value='$Discussion'></td></tr>
<tr><th>Actions</th><td><input type='text' name='editActions' value='$Actions'></td></tr>
<tr><th>Date of Next Meeting</th><td><input type='date' name='editDateofnextmeeting' value='$Dateofnextmeeting'></td></tr>
<tr><th>Status</th><td><input type='enum' name='editStatus' value='$Status'></td></tr>
<tr><th>E Number</th><td><input type='varchar' name='editE_number' value='$E_number'></td></tr>
<tr><th>Supervisor Comments</th><td><input type='text' name='editSupervisor_comments' value='$Supervisor_comments'></td></tr>
</form>
</tr>";
} else {
echo "<tr class='$rowClass'>
<td class='operation'>
<form class='display:inline' method='post' action='viewstudentminutes.php'>
<input type='hidden' name='editMinute_ID' value='$ID'>
<input type='image' src='edit.png' style='padding-top:7px'>
</form></td>
<tr><th>BNumber</th><td>$B_number</td></tr>
<tr><th>Date</th><td>$Date</td></tr>
<tr><th>Time</th><td>$Time</td></tr>
<tr><th>Discussion</th><td>$Discussion</td></tr>
<tr><th>Actions</th><td>$Actions</td></tr>
<tr><th>Date of Next Meeting</th><td>$Dateofnextmeeting</td></tr>
<tr><th>Status</th><td>$Status</td></tr>
<tr><th>E Number</th><td>$E_number</td></tr>
<tr><th>Supervisor Comments</th> <td>$Supervisor_comments</td></tr>
</tr>";
}
}
?>
</table>
您应按如下方式编辑查询行:
$dbQuery= $db->prepare("SELECT * FROM `Minute` WHERE `B_number` = '" . $currentUser . "' AND `id` = " . $_POST['editMinute_ID']);
$dbQuery=$db->prepareSELECT*从分钟开始,其中B_number='$“当前用户。”id=$_POST['Minute_ID'];但是,我需要这条语句,因为它会打印出所选的分钟数……viewstudentminutes.php中的表单没有名称为minute\u ID的字段,因此当您尝试在表单提交后使用它时,$\u POST['minute\u ID']不存在。您从PHP收到一条关于未定义索引的消息,从MySQl收到一条关于语法错误的投诉,因为您的SELECT查询由于缺少变量而格式不正确。好的,您知道如何修复这个问题吗?id是自动递增的,用户从未输入过,你的意思是我应该在表单中放一行这样的内容。。。分钟您可以打印$\u请求数组以找到正确的字段名我使用的是正确的字段名吗?你能举一个例子来说明你的意思吗?我的意思是,在打印完$\u请求数组后,你可以确定你是否使用了正确的字段名$_请求将显示提交的所有字段。打印完$\u请求后,您能打印您得到的吗?我将$\u POST['editMinute\u ID']更改为$\u POST['ID']以及相应的变量,如下所示。我试着打印$\u帖子;并且它打印了阵列。这么说一个数组里面什么都没有?!我很困惑,你是否可以发布一个例子,说明我应该做什么,只显示点击的分钟数,并允许用户编辑它们?请