【发布时间】:2014-05-10 11:07:39
【问题描述】:
不用担心mysql贬值,也不用担心sql注入,个人项目而已
我的代码:
if ($_SERVER['REQUEST_METHOD'] == 'POST') { // check if the user submits data (POST) or just loads the page (GET)
$error = false;
$required = array('uexam_id', 'usubject', 'uexam_date'); //VALIDATION: first check all required fields are not empty.
foreach($required as $field) {
if (!isset($_POST[$field]) || empty($_POST[$field])) {
$error = true;
break;
}
}
//if a field was empty, show error
if ($error) {
die("All fields required!!! <a href='examisud.php'> Back to PHP Form </a>");
} else {
$InsertQuery = "INSERT INTO Exam (exam_id, subject, exam_date) VALUES ('".mysql_real_escape_string($_POST["uexam_id"], $con)."','".mysql_real_escape_string($_POST["usubject"], $con)."','".mysql_real_escape_string($_POST["uexam_date"], $con)."')";
$result = mysql_query($InsertQuery, $con) or die('query Failure:'. mysql_error());
}
}
我在这里有一个肤浅/审美问题。 插入/更新/删除查询工作正常,但是这个 foreach 循环似乎给我带来了麻烦。 每次我导航到此页面(examisud)时,我都会收到错误“所有字段必填”。除了,实际上没有发生任何错误,它只是显示消息。出于某种原因,这是页面加载。 此外,每当我更新或删除时,错误消息都会再次显示,但字段中的值会像预期的那样更新/删除。 这很奇怪,我希望有人能指出我如何阻止这个循环只在我需要它时出现,也就是当一个字段留空时??? 非常感谢任何帮助!
【问题讨论】:
-
尝试将
if ($_SERVER['REQUEST_METHOD'] == 'POST') {更改为if(!empty($_POST)) { -
@ICanHasCheezburger 不,那没用,不幸的是完全相同的事情:/
-
您的意思是您在页面 load 或 reload 上看到错误?如果在 load 上,你能粘贴完整的页面代码吗?
-
您确定这些值是否被插入到数据库中,因为我觉得您的查询中存在问题,即在 VALUES 之后的每个括号中都有 $con,这是不需要的。
-
我的值被放入数据库中。我在另一个窗口中打开了 phpmyadmin 并在每次查询后刷新以检查它,它工作得很好。
标签: php mysql loops foreach insert