【问题标题】:Question about Date format when you use mysqli_stmt_bind_param关于使用mysqli_stmt_bind_param时日期格式的问题
【发布时间】:2020-03-18 07:41:39
【问题描述】:

我从 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" &lt;-- this point 中输入哪种日期格式。

我想改变“d”

【问题讨论】:

  • 你应该发送Y-m-d格式或者只是在查询代码之前格式化日期
  • 您应该始终使用s。所以在你的情况下ssssss

标签: php sql mysqli date-format bindparam


【解决方案1】:

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

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

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

bind_param() 中的d 代表双精度,它代表数字而不是日期。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多