首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用PHP将日期输入mysql数据库

如何使用PHP将日期输入mysql数据库
EN

Stack Overflow用户
提问于 2019-04-01 15:56:13
回答 2查看 86关注 0票数 1

好的,我已经有了一些插入脚本可以工作,但是当我尝试使用这个脚本时,什么都不会发生。我没有得到一个错误或任何东西,它只是没有插入到数据库。我有一种感觉,它的日期参数,但我不知道如何使它识别?

代码语言:javascript
复制
<?php //SETTING SESSION VARIABLES FOR ROUND 1 TEAMS AND SCORE

session_start();

  if (isset($_POST['go1'])) { // MATCHUP 1

    include_once 'dbcon.php';

    $_SESSION['t_team1'] = $_POST['team-1'];
    $_SESSION['t_team2'] = $_POST['team-2'];
    $_SESSION['s_score1'] = $_POST['score-1'];
    $_SESSION['s_score2'] = $_POST['score-2'];

    $team1winner = mysqli_real_escape_string($conn, $_POST['team-1']);
    $team2winner = mysqli_real_escape_string($conn, $_POST['team-2']);
    $date1 = mysqli_real_escape_string($conn, $_POST['date-1']);

    $sql = "INSERT INTO knockout (knockout_team1, knockout_team2, knockout_date)
    VALUES ('$team1winner', '$team2winner', '$date1');";

    header("Location: ../tables.php?tables=winner");
}

//date html

代码语言:javascript
复制
<input type="date" name"date-1" value="date" class="date">
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-01 16:33:02

首先,您将SQL命令放入一个字符串中,但实际上并不执行该命令。

其次,如果您正在执行该命令,但没有在这里显示它,并且您的dbcon.php文件工作正常,那么它更有可能是日期格式问题。

最后,您需要在准备好的语句中执行所有命令,特别是INSERT命令,以防止SQL 绞盘非常重要。

在这里,您的代码应该是什么样的:

代码语言:javascript
复制
<?php //SETTING SESSION VARIABLES FOR ROUND 1 TEAMS AND SCORE

    session_start();

    if (isset($_POST['go1'])) { // MATCHUP 1

    include_once 'dbcon.php';

    $_SESSION['t_team1'] = $_POST['team-1'];
    $_SESSION['t_team2'] = $_POST['team-2'];
    $_SESSION['s_score1'] = $_POST['score-1'];
    $_SESSION['s_score2'] = $_POST['score-2'];

    $team1winner = mysqli_real_escape_string($conn, $_POST['team-1']);
    $team2winner = mysqli_real_escape_string($conn, $_POST['team-2']);
    $date1 = mysqli_real_escape_string($conn, $_POST['date-1']);

    $TeamsStat = $conn->prepare("INSERT INTO knockout (knockout_team1, knockout_team2, knockout_date) VALUES (?, ?, ?)");

    $TeamsStat->bind_param("sss", $team1winner, $team2winner, $date1);   

    $TeamsStat->execute();
    $TeamsStat->close();

    header("Location: ../tables.php?tables=winner");
}

其中$conn是数据库连接的对象。

由于准备好的语句不支持日期类型,而且date不是一个空闲的输入值,所以knockout_date列应该是字符串,变量$date1也应该是字符串。

希望这对你有帮助。

票数 1
EN

Stack Overflow用户

发布于 2019-04-01 16:08:43

HTML中的日期格式是dd类型,但是当将它插入数据库时,您需要确保它的YYYY类型。因此,在插入之前,请确保正在转换它。

例:

代码语言:javascript
复制
  $originalDate = $yourDateVariable;
  $newDate = date("d-m-Y", strtotime($originalDate));

或者通过手册找到替代函数来转换它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55459145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档