MySQL bind_param 和日期存储为整数(由 java 产生)

Posted

技术标签:

【中文标题】MySQL bind_param 和日期存储为整数(由 java 产生)【英文标题】:MySQL bind_param and date stored as integer (produced by java) 【发布时间】:2015-07-18 09:52:07 【问题描述】:

我的时间戳Thu, 07 May 2015 16:52:43 GMT 存储如下:

$timestamp = 1431017563117;

具有此值的变量由 Java 生成(android SDK 中的 Location.getTime() 方法)。

我正在尝试使用mysqli->bind_param(); 方法将其存储在数据库中。我的字段有TIMESTAMP 类型。

我试过这个:

$stmt->bind_param('di', $timestamp, $Id);

还有这个:

$stmt->bind_param('ii', $timestamp, $Id);

它只是不起作用,MySQLi 错误给了我这样的废话:

从第 118 行 server.php 中的空值创建默认对象

我应该如何正确地做呢?

【问题讨论】:

【参考方案1】:

我在这里找到了答案:Using Mysqli bind_param with date and time columns?

应该是这样的:

$java_integer_timestamp = 1431017563117;

$unix_timestamp = $java_integer_timestamp / 1000;

$query = "update Table SET DateTimeColumn = FROM_UNIXTIME(?) WHERE Id=?";

// ... prepare statement here

$stmt->bind_param('di', $unix_timestamp, $Id);

【讨论】:

以上是关于MySQL bind_param 和日期存储为整数(由 java 产生)的主要内容,如果未能解决你的问题,请参考以下文章

MySQL 数据类型

mysql 常见数据类型

mysql绑定参数bind_param原理以及防SQL注入

数据库的日期类型

关于MYSQL 时间类型存储在数据库里是啥类型

如何使用准备好的语句将布尔值放入 mysql 数据库?