php - 如何使用PHP将日期输入到mysql数据库中

标签 php html mysql sql insert

好的,所以我已经有一些插入脚本在工作,但是当我尝试使用这个脚本时,没有任何反应。我没有得到错误或任何东西,它只是没有插入到数据库中。我感觉它是日期参数,但我不确定如何使其可识别?

<?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");
}

//日期html

<input type="date" name"date-1" value="date" class="date">

最佳答案

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

其次,如果您正在执行命令但未在此处显示它并且您的 dbcon.php 文件工作正常,则更有可能是日期格式问题。

最后,您需要执行所有命令,尤其是准备好的语句中的 INSERT 命令,以防止 SQL 注入(inject) winch 非常重要。

这里你的代码应该是这样的:

<?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");
}

Where $conn is the object of your database connection.

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

希望对您有所帮助。

关于php - 如何使用PHP将日期输入到mysql数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55459145/

相关文章:

javascript - 如何在 WordPress 中实现 AJAX 评论

php - 使用地理定位查找最近的城市

php - 打印联合选择

javascript - 用javascript下拉菜单?

html - CSS 定义的背景图像未出现在某些页面上

mysql - 如何从每个组中获取成员数以及组详细信息?

php - 使用meta_key 对帖子元数据进行排序?

php - 多个查询数据放入单个 html 表(PHP、Mysql)数组中未打印在正确的位置?

php - MYSQL 中的 UNION 和合并列

mysql - 有没有更好的方法来执行此 MySQL 查询?