我目前正在研究考试管理系统,该系统应该生成试卷,从一系列问题中提取。我一直在努力插入问题功能已经有一段时间了(事实上是好几天)但没有成功。
我正在使用的插入函数包含一个prepare语句,当我将它应用于我从互联网上获得的一个简单项目时,它已成功运行。数据库更新完美。但是当在我自己的项目中应用相同的概念时,似乎没有任何事情发生。
我确定它与SQL查询无关,因为没有弹出SQL错误。我检查了数据库连接,语法,SQL查询,并将它与工作项目并排比较,看起来都很好。我是Php的新手,非常感谢任何协助来帮助解决这个问题。提前谢谢!
我使用的是Php 7.0.2和Mysqli 2.4。我也在使用bootstrap for html。
以下是dbconnect.php的代码
<?php
$con = mysqli_connect("localhost","root","","register");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
?>
insert.php页面代码:
<?php
require('dbconnect.php');
include("auth.php");
$status = "";
if(isset($_POST['new']) && $_POST['new']==1){
$trn_date = date("Y-m-d H:i:s");
$question = $_REQUEST['question'];
$answer1 = $_REQUEST['answer1'];
$answer2 = $_REQUEST['answer2'];
$answer3 = $_REQUEST['answer3'];
$answer4 = $_REQUEST['answer4'];
$submittedby = $_SESSION["username"];
$ins_query = "INSERT INTO mcquestions (`quest_desc`, `answ1`, `answ2`, `answ3`, `answ4`, `trn_date`, `submittedby`)
VALUES (?, ?, ?, ?, ?, ?, ?);";
$stmt = mysqli_stmt_init($con);
if(!mysqli_stmt_prepare($stmt, $ins_query)) {
echo "SQL Error";
} else {
mysqli_stmt_bind_param($stmt, "sssssss", $question, $answer1, $answer2, $answer3, $answer4, $trn_date,
$submittedby);
mysqli_stmt_execute($stmt);
}
$status = "New Record Inserted Successfully. </br></br><a href='view.php'>View Inserted Record</a>";
}
?>
以下是插入问题的Html表单:
</head>
<div id="page-wrapper">
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">Questions</h1>
</div>
<!-- /.col-lg-12 -->
</div>
<!-- /.row -->
<div class="row">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">
Basic Form Elements
</div>
<div class="panel-body">
<div class="row">
<div class="col-lg-6">
<form method="POST" action="insert.php">
<input type="hidden" name="new" value="1" />
<div class="form-group">
<label>Text area</label>
<textarea type="textarea" class="form-control" rows="3" name="question" placeholder="Enter Question" required> </textarea>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter First Answer" name="answer1"/>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter Second Answer" name="answer2"/>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter Third Answer" name="answer3"/>
</div>
<div class="form-group">
<input type="text" class="form-control" placeholder="Enter Fourth Answer" name="answer4"/>
</div>
<div class="form-group">
<input type="submit" name="submit" value="Submit"/>
</div>
<div><p style="color:#FF0000;"><?php //echo $status; ?></p></div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
答案 0 :(得分:0)
首先,我的html中没有</head>
你没有在insert.php中开始会话的第二件事。在代码顶部开始。
session_start();
并确保您正在初始化会话变量,如$_SESSION["username"]='user1'
。
如果它仍然没有工作,那么请确保你连接到正确/正确的数据库。