php - 插入查询foreach循环麻烦

标签 php mysql loops foreach insert

我不必担心mysql贬值,也不必担心SQL注入(inject),只是一个个人项目

我的代码:

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))

关于php - 插入查询foreach循环麻烦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22756010/

相关文章:

mysql - 从 hive 检索不同的 id?

php - 无法将单选按钮的值作为字符串插入 MySQL 数据库

r - R中的双循环

php - 如何将文档从 .doc 转换为文本

php - 如何防止用户在未登录的情况下浏览文件夹中的文档?

mysql - 连接 2 个 Select 语句并将第二个语句限制为第一个语句的结果

list - 如何获取列表中某个位置项的值?

R 函数使用 for 循环返回 data.frame

php - Docker compose volume 在多阶段构建中覆盖 COPY

php - 在 PHP 中写入文本文件时换行不起作用