gpt4 book ai didi

php - 将日期插入数据库

转载 作者:可可西里 更新时间:2023-10-31 23:02:31 24 4
gpt4 key购买 nike

我有一个项目,其中有一个绑定(bind)到 MySQL 数据库的实时表。

我制作了一个表单,可以接受用户输入并插入到数据库中。但我在插入日期时遇到问题。

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

jQuery/Ajax:

$('.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);
}
});
}
}
});

添加游戏.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 日)

最佳答案

看起来对我来说是正确的。我会检查发布日期列是否真的是 DATE 列。并尝试在查询中硬编码日期,看看是输入问题还是什么。

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

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

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

注意 ` 不同于 '
我的键盘上什至没有它。

关于php - 将日期插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36354465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com