php – 将日期插入数据库

我有一个项目,其中一个活动表绑定到MySQL数据库.

我创建了一个表单,用于输入用户输入并插入数据库.但是我在插入日期时遇到了麻烦.

我使用jQuery和Ajax将值作为数据字符串传递给执行insert查询的PHP文档:

jQuery的/阿贾克斯:

$('.btn-add').click(function () {
        if ($('.add-form').is(':hidden')) {
            $('.add-form').slideDown(400);
            $(this).children('i').fadeOut(100);
        } else {
            var title = $("#title").val();
            var genres = $("#genres").val();
            var languages = $("#languages").val();
            var dev = $("#dev").val();
            var date = $(".picker").next().val().split(".").reverse().join("-");;
            // I used a date picker for this. It picks the date as "dd.mm.yyyy." 
            //and I had jquery convert it to "yyyy-mm-dd" for mysql compatibility.
            var dataString = 'title1=' + title + '&genres1=' + genres + '&languages1=' + languages + '&dev1=' + dev + '&date1=' + date;
            if (title == '' || genres == '' || languages == '' || dev == '' || date == '') {
                Materialize.toast('Please complete all the forms.', 4000);
            } else {
                // AJAX Code To Submit Form.
                $.ajax({
                    type: "POST",
                    url: "php/add-game.php",
                    data: dataString,
                    cache: false,
                    success: function (result) {
                        tableLoad();
                        Materialize.toast(result, 4000);
                        $('.add-form').slideUp(400);
                        $('.btn-add').children('i').fadeIn(100);
                    }
                });
            }
        }
    });

附加game.php:

<?php
    $conn = mysqli_connect("localhost", "root", "****", "db-name");

    $title = $_POST["title1"];
    $genres = $_POST["genres1"];
    $languages = $_POST["languages1"];
    $dev = $_POST["dev1"];
    $date = $_POST["date1"];

    $sql = "INSERT INTO games (title, genres, languages, developer, release-date) 
    VALUES ('$title', '$genres', '$languages','$dev','$date')";

    if ($conn->query($sql) === TRUE) {
        echo "Success!";
    } else {
        echo "Something went wrong.";
    }

    $conn->close();
    ?>

现在,首先我尝试只传递前4个文本值的代码,没有日期,并且它工作正常:新行添加了输入信息和表刷新,但我似乎无法插入适当的日期.

我尝试使用.php文档中的错误消息回显$date,它以“yyyy-mm-dd”格式向我显示日期就好了.然而,仍然出现问题,我不知道它是什么.

编辑1:

这是数据库结构:


编辑2:
debug.txt文件的内容:

如您所见,日期格式很好. (2015年3月15日)

解决方法:

它看起来对我来说是正确的.
我会检查release-date列是否真的是DATE列.
并尝试在查询中对日期进行硬编码,以查看它是输入问题还是什么.

$sql = "INSERT INTO games (title, genres, languages, developer, release-date)
VALUES ('$title', '$genres', '$languages','$dev','2016-05-01')";

编辑:
我做了一些测试,这是因为columnt名称发布日期,因为它包含’ – ‘字符.尝试将coulmn名称更改为release_date或releaseate.否则你可以在查询中转义列名,但是如果可以的话我会避免这种情况,因为下次你必须构建一个查询时它会导致同样的错误并且找出错误并不容易.

$sql = "INSERT INTO games (title, genres, languages, developer, `release-date`) 
    VALUES ('$title', '$genres', '$languages','$dev','$date')" 

注意’与’不同’
我甚至没有在键盘上.

相关文章

1.第一步 设置响应头 header(&#39;Access-Control-Allow...
$.inArray()方法介绍 $.inArray()函数用于在数组中搜索指定的...
jquery.serializejson.min.js的妙用 关于这个jquery.seriali...
JS 将form表单数据快速转化为object对象(json对象) jaymou...
jQuery插件之jquery.spinner数字智能增减插件 参考地址:http...