好的,我已经有了一些插入脚本可以工作,但是当我尝试使用这个脚本时,什么都不会发生。我没有得到一个错误或任何东西,它只是没有插入到数据库。我有一种感觉,它的日期参数,但我不知道如何使它识别?
<?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
<input type="date" name"date-1" value="date" class="date">发布于 2019-04-01 16:33:02
首先,您将SQL命令放入一个字符串中,但实际上并不执行该命令。
其次,如果您正在执行该命令,但没有在这里显示它,并且您的dbcon.php文件工作正常,那么它更有可能是日期格式问题。
最后,您需要在准备好的语句中执行所有命令,特别是INSERT命令,以防止SQL 绞盘非常重要。
在这里,您的代码应该是什么样的:
<?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也应该是字符串。
希望这对你有帮助。
发布于 2019-04-01 16:08:43
HTML中的日期格式是dd类型,但是当将它插入数据库时,您需要确保它的YYYY类型。因此,在插入之前,请确保正在转换它。
例:
$originalDate = $yourDateVariable;
$newDate = date("d-m-Y", strtotime($originalDate));或者通过手册找到替代函数来转换它。
https://stackoverflow.com/questions/55459145
复制相似问题