为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
慕娘9325324 2023-05-26 16:58:38
因此,我试图从一个 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));}
查看完整描述

2 回答

?
MMMHUHU

TA贡献1834条经验 获得超8个赞

您正在将日期转换为 int $sql->bind_param("iiiisd"

编辑:MySQL需要一个字符串,所以试试$sql->bind_param("issisd"


查看完整回答
反对 回复 2023-05-26
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

如果您使用的是标准 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();

}


查看完整回答
反对 回复 2023-05-26
  • 2 回答
  • 0 关注
  • 145 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信