我创建了数据库,它基本上接受了名称和ID以及答案字符串 长度47,我的PHP代码将根据我提供的答案密钥对传入结果进行分级,包含正确答案计数的数字将存储在数据库中。这是我的数据库的信息。 数据库名称是标记 和表名为'answer',其中有5个字段如下
1) answer_id :int , not null, auto increament.
2) name: text
3)id : text
4)answers : text
5)correct : int
我的问题和问题是功能正常工作
// setup query
$q = mysql_query("INSERT INTO `answer` VALUES
(NULL,'$name', '$id','$answers','$correct')");
// run query
$result = mysql_query($q);
或以其他方式,我的数据库中没有任何内容???
提前致谢。
这是整个计划。
<?php
error_reporting(E_ALL ^ E_STRICT);
// to turn error reporting off
error_reporting(0);
$name =$_POST['name'];
$id = $_POST['id'];
$answers = $_POST['answers'];
// check the length of string
if(strlen($answers) !=10)
{
print'your answer string must be 10';
return;
}
mysql_connect("localhost","root","");
mysql_select_db("marking");
$name = addslashes($name);
$id = addslashes($id);
$answers = addslashes($answers);
$answer_key = "abcfdbbjca";
$correct = 0;
for($i=0;$i<strlen($answer_key);$i++)
{
if($answer_key[$i] == $answers[$i])
$correct++;
}
// Setup query
$q = mysql_query("INSERT INTO `answer` VALUES ('$name', '$id','$answers','$correct')");
$result = mysql_query($q);
print 'Thnak you. You got' + $correct + 'of 10 answers correct';
?>
答案 0 :(得分:2)
试试这个:
// setup query
$q = "INSERT INTO `answer` (`name`, `id`, `answers`, `correct`) VALUES
('$name', '$id','$answers','$correct')";
//Run Query
$result = mysql_query($q) or die(mysql_error());
此外,您应该避免使用mysql_
函数,因为它们正在被弃用。相反,我建议您熟悉PDO。
另请注意,or die(mysql_error())
部分不应在生产代码中使用,仅用于调试目的。
答案 1 :(得分:1)
两件事。
您实际上是在执行查询两次。 mysql_query
执行查询并返回结果资源。 http://php.net/manual/en/function.mysql-query.php
此外,您在查询中引用int
列correct
,据我所知,您不能这样做(我可能在那里错了)。
$result = mysql_query("INSERT INTO `answer` VALUES (NULL,'$name', '$id','$answers',$correct)");
编辑:原来我确实错了,你可能无视我的回答。