Mysql 将我的日期列保存为 0000-00-00?

2023-11-29

我已插入除错误插入为 0000-00-00 的日期部分之外的所有记录。我的代码内部有什么问题?

if(isset($_POST["submit"]))
    {

        $birthDay= $_POST["Birthday_Year"] . "-" . $_POST["Birthday_Month"] . "-" . $_POST["Birthday_day"];


        $sql="SELECT * FROM student WHERE stud_id=1";
        $result = mysqli_query($db,$sql)  or die("Error: ".mysqli_error($db));
        $row=mysqli_fetch_array($result,MYSQLI_ASSOC);
        if(mysqli_num_rows($result) == 1)
        {
            $msg = "Sorry...This Studnent ID is already exist...";
        }
        else
        {
            $query = mysqli_query($db, "INSERT INTO student (stud_fname, stud_lname, stud_gfname,stud_id,stud_gender,stud_dob,stud_dep,stud_year,stud_section)
            VALUES ('$fname', '$lname', '$gfname','$studid', '$gender', '$birthDay','$department', '$year', '$section')");
            if($query)
            {
                $msg = "Thank You! you are now registered.";
            }
        }
    }

在所有情况下,保存为 0000-00-00 的日期都意味着 MySQL 获得了无效值(包括根本没有值)。检查您的代码以确保它始终具有有效的日期值格式。

来自MySQL 文档:

无效的 DATE、DATETIME 或 TIMESTAMP 值将转换为相应类型的“零”值(“0000-00-00”或“0000-00-00 00:00:00”)。

向您的代码添加一些验证:

if (!empty($_POST["Birthday_Year"]) && !empty($_POST["Birthday_Month"]) && !empty($_POST["Birthday_day"]))
{
    // do stuff
} else 
{
    // validation error: some of the values are empty
}

PS:另一个问题是,你的代码有一些漏洞SQL注入攻击,如果您让用户自己输入值而不进行验证。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mysql 将我的日期列保存为 0000-00-00? 的相关文章

随机推荐

  • 是否可以在 THREE.js 中启用无限数量的渲染器?

    为了避免 XY 问题 让我解释一下我来自哪里 我想使用 THREE js 使用同一时间轴绘制大量堆叠在一起的波形 波形只是三线 我通过修改正交相机的视图范围来实现这些波形的缩放 平移 缩放 我最初尝试完成此任务 导致我创建多个具有固定高度的
  • 在 Laravel 5.5 中使用 str_limit 函数限制文本

    我一直在尝试限制我的博客内容文本str limit在我对其应用字符限制之前 它工作得很好 请查看我的刀片文件的代码中缺少什么 str limit blog gt content 在默认限制下工作正常 在视图上显示有限的文本 但是当我应用任何
  • PrimeFaces:验证时的条件更新

    是否可以仅在验证成功时有条件地更新 JSF 组件 我希望能够做类似的事情
  • 为什么我的浮点值无法正确打印?

    我正在尝试打印浮点值 0x40a00000 和 0xc0200000 但是我打印出来的值和根据 IEEE 754 浮点转换器的正确值 https www h schmidt net FloatConverter IEEE754 html 完
  • 如何让 Visual Studio 识别 XAML 更改?

    我刚刚开始使用 WPF 所以这里可能缺少一些简单的东西 我有一个正在 VS 2010 中编辑的窗口 当我手动更改 XAML 然后运行应用程序 F5 时 窗口仍保持编辑之前的状态 但是如果我进行重建然后运行应用程序 我的更改就会显示 有什么方
  • @Component Hibernate 类

    我在程序中休眠了带注释的类 由于我正在运行一个 Spring 项目 我已将它们包含在 servlet xml 文件中 com student dto 是实际的包名称 并在联系人实体上添加了 Component 有没有一种方法可以自动添加 C
  • R 中的捷克语编码

    我在新计算机上安装了 RStudio 并出现了编码问题 当我在控制台中键入带重音的文本 不涉及文件写入或读取 只是普通控制台 时 我丢失了捷克语口音 如本示例所示 请注意带重音的 N 和 gt uf uf ufi ky 1 Nuf nuf
  • C#cefsharp浏览器尝试设置代理[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我不太擅长使用 CefSharp 浏览器 所以我需要一些外部帮助 using System using System Collections Generic using System Co
  • npm @types 包的类型 globalDevDependency 的等价物是什么?

    我想升级一个 电子邮件受保护 项目到 tsc 2 并在流程沟中typings从我的工具链 对于常见的依赖项来说这不是问题 因为这些依赖项来自我的typings json dependencies bluebird registry npm
  • Matlab:打印符号方程

    我有一个符号方程 la 2x 3y 4z 0 问题是我想将其与我正在输入的完整句子一起打印到屏幕上 我希望在终端中显示 整流平面的方程为 2x 3y 4z D 我是 Matlab 新手 无法找到适合于此的函数 谢谢 蛇 您可以使用CHAR符
  • Tkinter 中的 Matplotlib 绘图 - 每次更新都会添加新的导航工具栏?

    我正在开发 Tkinter GUI 根据用户输入以交互方式生成 Matplotlib 绘图 为此 需要在用户更改输入后重新绘制 我已经让它原则上工作 但想包括NavigationToolbar 但是 我似乎无法获得更新NavigationT
  • 在 R 中的向量中保持字符串出现的滚动计数

    我的问题最好通过一个快速而简单的示例来解决 my strings c apple banana carrot apple apple dairy banana eggplant flowers flowers apple banana my
  • std::ostream 的重载 << 运算符

    ostream operator lt lt ostream osObject const storageRentals rentals osObject lt lt rentals summaryReport return osObjec
  • 使用签名发布策略将对象发布到 GCS 时出错

    我正在尝试为用户创建一项签名策略 以便将其文件上传到 Google Cloud Storage 我在这里面临的问题是文件名 我希望用户在上传时提供文件名 如官方 GCS 文档中所述 如果您想要从用户 这不起作用 因为我收到以下错误
  • 手动更改 Flask Babel 语言

    我正在使用 Flask Babel 来翻译我的 Flask Python 应用程序 目前我只有区域设置的翻译机制 但是如果用户除了他的位置之外还想将位置更改为英语怎么办 有什么办法可以手动更改区域设置吗 这是我的 Flask Babel 函
  • Spring Security SAML IdP 元数据证书和签名

    我看过很多问题 包括https stackoverflow com a 25384924 1317559 我有 IdP 元数据和证书 但似乎无法获取 Spring 所以请查看它 将证书添加到密钥库 keytool importcert al
  • twitter bootstrap,容器类不可嵌套

    The Bootstrap 3 容器类的文档声明 由于填充等原因 两个容器都不可嵌套 但是 在官方的例子中 采取this 一个简单导航栏的演示 我们看到类似的内容 div class container div
  • 表单提交时 jQuery 不会在 Safari 中运行

    我有一个让我头疼的特殊问题 以下代码在 Firefox 中完美运行 但在 Mac OS 上的 Safari 中运行不正常 我想在上传文件时显示简单的 正在加载消息 所以我的页面看起来像这样
  • 如何创建导入最常用的 python 模块的快捷方式?

    我正在寻找一种方法来自动 或作为快捷方式 在 jupyter 笔记本中导入一组 python 模块 这样我就不必每次创建新笔记本时都导入它们 我发现将这些模块导入到每个笔记本中非常重复 我在这里能想到的最接近的事情是创建一个 python
  • Mysql 将我的日期列保存为 0000-00-00?

    我已插入除错误插入为 0000 00 00 的日期部分之外的所有记录 我的代码内部有什么问题 if isset POST submit birthDay POST Birthday Year POST Birthday Month POST