我是 PHP 新手,正在尝试编写一个测验应用程序。我的 addquest.php 文件中有以下代码。但是当我使用它添加问题时,表中只添加了一些列。抛出错误的数据类型为“text”或“varchar”。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Add new question</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width initial-scale=1">
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/addques.css">
</head>
<body class="text-center">
<h1>Add question</h1>
<?php
session_start();
//only display the following content to admin
if($_SESSION['usertype'] == 'admin') {
?>
<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
<div>
<label for="topic">Topic</label>
<select name="topic" id="topic">
<option value="1">Logical Reasoning</option>
<!-- removing other options to shorten the code -->
<option value="37">MS Windows and Office</option>
</select>
</div>
<div>
<label for="Statement">Question Statement</label>
<input id="" type="text" name="statement">
</div>
<div>
<label for="Option1">Option 1</label>
<input id="Option1" type="text" name="option1">
</div>
<div>
<label for="Option2">Option 2</label>
<input id="Option2" type="text" name="option2">
</div>
<div>
<label for="Option3">Option 3</label>
<input id="Option3" type="text" name="option3">
</div>
<div>
<label for="Option4">Option 4</label>
<input id="Option4" type="text" name="option4">
</div>
<div>
<label for="correctans">Correct Answer</label>
<select name="correctans" id="correctans">
<option value="a">A</option>
<option value="b">B</option>
<option value="c">C</option>
<option value="d">D</option>
</select>
</div>
<div>
<label for="imagepath">Image URL</label>
<input id="imagepath" type="text" name="imagepath">
</div>
<div>
<label for="solution">Solution</label>
<input id="solution" type="textarea" name="solution">
</div>
<div>
<input id="submit" type="submit" name="submit" value="Add">
</div>
</form>
<?php
}
?>
<?php
// connect to the database
require_once("connectVars.php");
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die("Error connecting to database @ addquestion.php");
//set the variables.
$statement = $_POST['statement'];
$option1 = $_POST['option1'];
$option2 = $_POST['option2'];
$option3 = $_POST['option3'];
$option4 = $_POST['option4'];
$correctans = $_POST['correctans'];
$imageUrl = $_POST['imagepath'];
$solution = $_POST['solution'];
$topicId = $_POST['topic'];
// add the question
$query_question = "INSERT into questionbank (statement, option1, option2, option3, option4, correctans, topicId,imagepath)
VALUES ('$statement', '$option1', '$option2', '$option3', '$option4', '$correctans', '$topicId', '$imageUrl')";
$addQues = mysqli_query($dbc, $query_question) or die("Error adding question");
// add the solution
$query_solution = "INSERT into solutions (solution) VALUES('$solution')";
$addSol = mysqli_query($dbc, $query_solution) or die("Error adding solution");
mysqli_close($dbc);
?>
</body>
</html>
最佳答案
这里的问题不在于查询本身,而在于输入表单的数据。如果包含单引号,则查询失败。
请注意表单中输入的数据。
关于php - 为什么这个 Mysql 查询只存储几个字段并抛出错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809992/