【问题标题】:Using Mysqli bind_param with date and time columns?将 Mysqli bind_param 与日期和时间列一起使用?
【发布时间】:2010-10-22 19:02:11
【问题描述】:

如何使用 PHP mysqli 和 bind_param 将数据插入 MySQL 日期或时间列?

【问题讨论】:

    标签: php mysql mysqli


    【解决方案1】:

    和其他字符串一样

    $stmt = $mysqli->prepare('insert into foo (dt) values (?)');
    $dt = '2009-04-30 10:09:00';
    $stmt->bind_param('s', $dt);
    $stmt->execute();
    

    【讨论】:

      【解决方案2】:

      PHP 中的时间戳是整数(从 UNIX 纪元开始的秒数)。上述方法的替代方法是使用整数类型的日期/时间参数,以及 MySQL 函数 FROM_UNIXTIMEUNIX_TIMESTAMP

      $stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES (FROM_UNIXTIME(?))");
      $stmt->bind_param("i", $your_date_parameter);
      $stmt->execute();
      

      【讨论】:

      • @Rob:当我使用这个时,日期设置为 1970/01/01
      • 时间戳的有效范围通常是从 1901 年 12 月 13 日星期五 20:45:54 GMT 到 2038 年 1 月 19 日星期二 03:14:07 GMT。 (这些日期对应于 32 位有符号整数的最小值和最大值)。但是,在 PHP 5.1.0 之前,此范围在某些系统(例如 Windows)上被限制为 01-01-1970 到 19-01-2038。
      【解决方案3】:

      我使用了 date() 函数,这解决了我的问题。

      $stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn) VALUES ?");
      // 6/10/2015 10:30:00
      $datetime = date("Y-m-d H:i:s", mktime(10, 30, 0, 6, 10, 2015));
      $stmt->bind_param("s", $datetime);
      $stmt->execute();
      

      【讨论】:

        【解决方案4】:

        对于当前日期/时间,您可以使用 MySQL 标准例程。您不必为此做好准备。

        $query  = "INSERT INTO tablename ";
        $query .= "VALUES(?,?,?,NOW()) ";
        $preparedquery = $dbaselink->prepare($query);
        $preparedquery->bind_param("iii",$val1,$val2,$val3);
        

        【讨论】:

          【解决方案5】:

          首先使用 date() 函数设置日期和时间-

          $date=date("d/m/y");
          $time=date("h:i:sa");
          

          然后将其传递到准备好的语句中,就像任何其他字符串变量一样-

          $stmt = $mysqli->prepare("INSERT INTO FOO (dateColumn, timeColumn) VALUES (?,?)");
          $stmt->bind_param("ss", $date , $time);
          $stmt->execute();
          

          【讨论】:

            猜你喜欢
            • 2019-12-17
            • 1970-01-01
            • 1970-01-01
            • 2016-08-15
            • 1970-01-01
            • 1970-01-01
            • 2012-01-05
            相关资源
            最近更新 更多