首页 > 解决方案 > 关于使用mysqli_stmt_bind_param时日期格式的问题

问题描述

我从 DatePickerDialog 获取 Date 的值,并希望通过 Volley 发送它。

日期变量 --> 日期 community_Date

我要求下面的代码

这是我的 PHP 代码。

<?php

    $con=mysqli_connect("localhost", "",
                       "","");
    error_reporting(E_ALL);
    mysqli_query($con, 'SET NAMES utf8');

    $Name = $_POST["Name"];
    $place = $_POST["place"];
    $Number = $_POST["Number"];
    $Date = $_POST["Date"];
    $startTime = $_POST["startTime"];
    $finishTime = $_POST["finishTime"];

    $statement = mysqli_prepare($con, "INSERT INTO community_Register VALUES (?,?,?,?,?,?)");
    mysqli_stmt_bind_param($statement, "ssidii", $Name,$place, $Number, $Date, $startTime, $finishTime);

?>

我想知道我应该输入哪种日期格式mysqli_stmt_bind_param($statment, "ssidii" <-- this point

我想改变“d”

标签: phpsqlmysqlidate-formatbindparam

解决方案


您应该始终使用s. 所以在你的情况下ssssss

mysqli_stmt_bind_param($statement, "ssssss", $Name,$place, $Number, $Date, $startTime, $finishTime);

日期应该是格式为Y-m-d或的字符串Y-m-d H:i:s

dinbind_param()代表双精度,它代表一个数字而不是日期。

如果您需要格式化日期,您可以使用 DateTime 类

$Date = (new \DateTime($_POST["Date"]))->format('Y-m-d');

推荐阅读