尝试将日期插入数据库时​​如何修复“日期值不正确:

因此,我试图从一个 id、2 个日期、一个字符串和一个小数形式的表单中插入数据。但它给出了上面的错误。


列为:ID:int、startdate:Date、enddate:Date、number:int、string、Decimal。


我已经尝试添加所有这些date()功能和strtodate()类似的东西,但没有任何效果。


if (isset($_POST['submitReservation'])) {

    $startDate = $_POST['startDate'];

    $endDate = $_POST['endDate'];


    $linens = mysqli_real_escape_string($conn, $_POST['linens']);

    $peopleAmount = mysqli_real_escape_string($conn, $_POST['persons']);

    $number = 50;

    $userID = $_SESSION["UserID"];


    $sql = $conn->prepare("INSERT INTO reservation (TenantId, StartDate, EndDate, Number_Of_Persons, Linens, Cost) VALUES (?, ?, ?, ?, ?, ?)");

    $sql->bind_param("iiiisd", $userID, $startDate, $endDate, $peopleAmount, $linens, $number);

    $sql->execute() or die(mysqli_error($conn));

}


慕娘9325324
浏览 147回答 2
2回答

MMMHUHU

您正在将日期转换为 int $sql->bind_param("iiiisd"编辑:MySQL需要一个字符串,所以试试$sql->bind_param("issisd"

素胚勾勒不出你

如果您使用的是标准 PDO 库,则可以使用 bindParam() 或 bindValue() 并指定类型,例如if (isset($_POST['submitReservation'])) {    $startDate = $_POST['startDate'];    $endDate = $_POST['endDate'];    $linens = $_POST['linens']);    $peopleAmount = $_POST['persons']);    $number = 50;    $userID = $_SESSION["UserID"];    $sql = $conn->prepare("INSERT INTO reservation (TenantId, StartDate, EndDate, Number_Of_Persons, Linens, Cost) VALUES (?, ?, ?, ?, ?, ?)");    $sql->bindParam(1, $userID, PDO::PARAM_STR);    $sql->bindParam(2, $startDate, PDO::PARAM_STR);    $sql->bindParam(3, $endDate, PDO::PARAM_STR);    $sql->bindParam(4, $peopleAmount, PDO::PARAM_INT);    $sql->bindParam(5, $linens, PDO::PARAM_STR);    $sql->bindParam(6, $number, PDO::PARAM_INT);    $sql->execute();}
打开App,查看更多内容
随时随地看视频慕课网APP