0
私はPHPを初めて使い、クイズ・アプリケーションを作成しようとしています。 addquestion.phpファイルに次のコードがあります。しかし、これを使って質問を追加すると、いくつかの列だけがテーブルに追加されます。エラーを投げるものはデータ型 'text'または 'varchar'です。なぜこのMySQLクエリはいくつかのフィールドを格納し、エラーメッセージを投げるだけですか?
<!DOCTYPE html>
<html lang="en">
<head>
\t <title>Add new question</title>
\t <meta charset="utf-8">
\t <meta name="viewport" content="width=device-width initial-scale=1">
\t <link rel="stylesheet" href="css/bootstrap.min.css">
\t <link rel="stylesheet" href="css/addques.css">
</head>
<body class="text-center">
\t <h1>Add question</h1>
\t <?php
\t \t session_start();
\t \t //only display the following content to admin
\t \t if($_SESSION['usertype'] == 'admin') {
\t ?>
\t \t <form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">
\t \t \t <div>
\t \t \t \t <label for="topic">Topic</label>
\t \t \t \t <select name="topic" id="topic">
\t \t \t \t \t <option value="1">Logical Reasoning</option>
\t \t \t \t \t <!-- removing other options to shorten the code -->
\t \t \t \t \t <option value="37">MS Windows and Office</option>
\t \t \t \t </select>
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="Statement">Question Statement</label>
\t \t \t \t <input id="" type="text" name="statement">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="Option1">Option 1</label>
\t \t \t \t <input id="Option1" type="text" name="option1">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="Option2">Option 2</label>
\t \t \t \t <input id="Option2" type="text" name="option2">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="Option3">Option 3</label>
\t \t \t \t <input id="Option3" type="text" name="option3">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="Option4">Option 4</label>
\t \t \t \t <input id="Option4" type="text" name="option4">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="correctans">Correct Answer</label>
\t \t \t \t <select name="correctans" id="correctans">
\t \t \t \t \t <option value="a">A</option>
\t \t \t \t \t <option value="b">B</option>
\t \t \t \t \t <option value="c">C</option>
\t \t \t \t \t <option value="d">D</option>
\t \t \t \t </select>
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="imagepath">Image URL</label>
\t \t \t \t <input id="imagepath" type="text" name="imagepath">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t <label for="solution">Solution</label>
\t \t \t \t <input id="solution" type="textarea" name="solution">
\t \t \t </div>
\t \t \t <div>
\t \t \t \t
\t \t \t \t <input id="submit" type="submit" name="submit" value="Add">
\t \t \t </div>
\t \t </form>
\t <?php
\t \t }
\t ?>
\t <?php
\t \t // connect to the database
\t \t require_once("connectVars.php");
\t \t $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) or die("Error connecting to database @ addquestion.php");
\t \t
\t \t //set the variables.
\t \t $statement = $_POST['statement'];
\t \t $option1 = $_POST['option1'];
\t \t $option2 = $_POST['option2'];
\t \t $option3 = $_POST['option3'];
\t \t $option4 = $_POST['option4'];
\t \t $correctans = $_POST['correctans'];
\t \t $imageUrl = $_POST['imagepath'];
\t \t $solution = $_POST['solution'];
\t \t $topicId = $_POST['topic'];
\t // add the question
\t \t $query_question = "INSERT into questionbank (statement, option1, option2, option3, option4, correctans, topicId,imagepath)
\t \t \t \t \t \t VALUES ('$statement', '$option1', '$option2', '$option3', '$option4', '$correctans', '$topicId', '$imageUrl')";
\t \t $addQues = mysqli_query($dbc, $query_question) or die("Error adding question");
\t \t // add the solution
\t \t $query_solution = "INSERT into solutions (solution) VALUES('$solution')";
\t \t $addSol = mysqli_query($dbc, $query_solution) or die("Error adding solution");
\t \t mysqli_close($dbc);
\t ?>
</body>
</html>
http://php.net/manual/en/mysqli.error.php実際のエラーを表示します。 'またはdie(" XXXを追加するエラー ");はあなたを助けません。 http://php.net/manual/en/function.error-reporting.phpと一緒に –
これらは引用符です。 –
Btw、あなたは確かに "主が彼らが解決されたかどうかを知っている"という質問が多い。幸運のデバッグ、それは "楽しい"の一部です。 –