这是我的表单数据:
<?php
$ret=mysqli_query($con,"select *
from jobs
where jobID='".$_GET['jobID']."'");
while($row=mysqli_fetch_array($ret)){
?>
<section id="main-content">
<section class="wrapper">
<?php
$jobactive = $row[job_active];
if($jobactive == 1) {
$jobactive = "y";
} else {
$jobactive = "n";
}
?>
<h3><i class="fa fa-pencil"></i> Update <?php echo $row['job_title'];?></h3>
<div class="row">
<div class="col-md-12">
<div class="content-panel">
<p style="color:#F00"><?php echo $_SESSION['msg'];?><?php echo $_SESSION['msg']="";?></p>
<form style = "padding-right: 5px;" class="form-horizontal style-form" name="form1" method="post" action="update-jobs.php?jobID=<?php echo $row['jobID'];?>" onSubmit="return validate();">
<p style="color:#F00"></p>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Job ID</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="jobID" value="<?php echo $row['jobID'];?>" readonly>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Job Title</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="job_title" value="<?php echo $row['job_title'];?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Job Description</label>
<div class="col-sm-10">
<textarea class="form-control" name="job_des" cols="17" rows="10"><?php echo $row['job_des'];?></textarea>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Job Requirements</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="job_reqs" value = "<?php echo $row['job_reqs'];?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Is the job active?(y/n)</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="job_active" value = "<?php echo $jobactive;?>">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 col-sm-2 control-label" style="padding-left:40px;">Posting Date</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="postingDate" value = "<?php echo $row['Posting_date'];?>" readonly>
</div>
</div>
<div style="margin-left:15px; margin-bottom:15px;">
<input type="submit" name="submit" value="Update Job" class="btn btn-theme">
</div>
</form>
<div style="margin-left:15px; margin-bottom:15px;">
<form action = "create-jobs.php">
<input type = "submit" class="btn btn-theme" value = "Create a new job">
</form>
</div>
</div>
</div>
</div>
</section>
</section>
<?php
}
?>
这是我的相关代码:
$msg = "";
if(isset($_POST['submit']))
{
$msg = "its working!";
$jobID=$_GET['jobID'];
$jobTitle=$_POST['job_title'];
$jobDes=$_POST['job_des'];
$jobReqs=$_POST['job_reqs'];
$jobisActive=$_POST['job_active'];
$postingDate=$_POST['postingDate'];
if($jobisActive == "y") {
$jobisActive = '1';
} else {
$jobisActive = '0';
}
$sql = "UPDATE jobs
(jobID, job_title, job_des,
job_reqs, job_active, Posting_date)
SET ('$jobID', '$jobTitle', '$jobDes', '$jobReqs',
'$jobisActive', '$postingDate') WHERE jobID ='$jobID'";
$query=mysqli_query($con,$sql);
$_SESSION['msg']="Profile Updated successfully";
}
如果此方法正确运行,则在我单击“提交”按钮后,表单输入中的值应立即向我显示新更改,并弹出“配置文件成功更新”通知。我以前遇到过这样的问题,所以我仔细检查了声明是否存在任何问题,这似乎还不错。当我运行代码时,出现消息“配置文件更新成功”,但实际上没有发生数据库更新。
我添加了一些检查以查看查询是否运行并且出现了一些错误。
注意:未定义的变量:第52行的C:\ xampp \ htdocs \ loginsystem \ admin \ updateJobs.php中的conn
致命错误:未捕获错误:在C:\ xampp \ htdocs \ loginsystem \ admin \ updateJobs.php:52中,调用null的成员函数query()堆栈跟踪:#0 C:\ xampp \ htdocs \ loginsystem \ admin \ update-jobs.php(9):include()#1 {main}放在第52行的C:\ xampp \ htdocs \ loginsystem \ admin \ updateJobs.php中
首先检查您的数据类型是否正确表示在数据库中。
要查看查询是否真的在进行查询,我建议将$_SESSION['msg']="Profile Updated successfully";
放在if中,方法是:
if(mysqli_query($con,$sql)){
$_SESSION['msg']="Profile Updated successfully";
}
这样,即使查询没有更新,您也可以查看查询是否正确,而不是始终发布SESSION-msg。您将能够更轻松地进行测试。
我还建议您将所有帖子都放在mysql_real_escape_string
中,以避免这种方式的SQL注入:
$jobTitle = mysql_real_escape_string($_POST['job_title']);
如果您仍然没有解决方案,请告诉我! =)