Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在尝试将日期插入数据库时,如何修复第1行“StartDate”列的“不正确的日期值:'2020”_Php_Mysql_Mysqli - Fatal编程技术网

Php 在尝试将日期插入数据库时,如何修复第1行“StartDate”列的“不正确的日期值:'2020”

Php 在尝试将日期插入数据库时,如何修复第1行“StartDate”列的“不正确的日期值:'2020”,php,mysql,mysqli,Php,Mysql,Mysqli,所以我尝试从一个表单中插入数据,它是,一个id,两个日期,一个字符串和一个小数。但它给出了上面的错误 列为:ID:int、startdate:Date、enddate:Date、number:int、string、Decimal 我已经尝试过添加所有那些日期函数和strtodate之类的东西,但是没有任何效果 如果设置为$\u POST['submitservation']{ $startDate=$_POST['startDate']; $endDate=$_POST['endDate'];

所以我尝试从一个表单中插入数据,它是,一个id,两个日期,一个字符串和一个小数。但它给出了上面的错误

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

我已经尝试过添加所有那些日期函数和strtodate之类的东西,但是没有任何效果

如果设置为$\u POST['submitservation']{ $startDate=$_POST['startDate']; $endDate=$_POST['endDate']; $linens=mysqli\u real\u escape\u string$conn,$\u POST['linens']; $peopleAmount=mysqli\u real\u escape\u string$conn,$\u POST['persons']; $number=50; $userID=$\会话[userID]; $sql=$conn->准备插入预订租户、开始日期、结束日期、人数、床单、成本值?、?、?、?、?、?; $sql->bind_paramiiisd、$userID、$startDate、$endDate、$peopleAmount、$lines、$number; $sql->execute或diemysqli_错误$conn; }
您正在将日期强制转换为int$sql->bind_paramiisd


编辑:MySQL需要一个字符串,因此请尝试$sql->bind_paramissisd

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

使用diemysqli_error$conn是一个非常糟糕的主意;因为它可能会泄露敏感信息。有关更多说明,请参阅本文:您必须删除mysqli\u real\u escape_string@Dharman只是用它来看看出了什么问题你试过调试这个问题吗?你想在StartDate列中插入哪个值?嗯,那么我应该使用什么,因为我只能使用:string,int,double,blobuse string,这是MySQL所期望的。我不知道为什么你的答案会被否决,因为它起作用了我看到你在使用mysqli,您可能应该将其改为使用PDO,但如果出于某种原因必须使用它,那么武藏是正确的,它需要转换为字符串