【发布时间】:2012-10-19 08:15:53
【问题描述】:
我已经创建了数据库,它基本上接受名称和 ID 并回答字符串 长度为 47,我的 php 代码将根据我提供的答案键对传入的结果进行评分,并且包含正确答案计数的数字将存储在数据库中。这是我的数据库的信息。 数据库名称正在标记 和名为“答案”的表,它有以下 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';
?>
【问题讨论】:
-
您似乎正试图在您的 answer_id 中存储一个不能为空的 NULL 值。
-
失败的原因有很多。首先你必须调试它。
if (!$result) {echo mysql_error();}验证语法错误。如果您的输入值没有正确转义,引号也可能会破坏它。 -
您可能需要提供更多信息以供任何人了解。但是对于初学者来说,你在那里调用了 mysql_query 两次。一次就出结果。我们需要知道这些变量的值,如果你已连接,任何 mysql_error 结果等。另外,有人会因为你使用 mysql_functions 而不是 mysqli 或 pdo 而大喊大叫
-
@nathanhayfield 没关系。它是一个自增字段,赋值为NULL意味着它应该得到它的自增值。
-
@Barmar 嗯,我通常完全忽略它。从来没有这样尝试过。
标签: php mysql database web phpmyadmin