我正在创建一个对象的实例并同时在 MySQL 数据库上使用 INSERT 查询。数据库中的表有一个名为 的字段modified
,每当插入/更改行时,该字段就会自动更新。
当调用我的类的构造函数时,它将对象的属性设置为查询中使用的属性。我的问题是,我是否必须SELECT
对新插入/更新的行运行查询以获取其时间戳,或者我可以安全地假设 PHP 的time()
函数会返回相同的值?
例如:
<?php
// Inside the __construct method of a class
static::query('
INSERT INTO `table` (
`name`,
`content`
)
VALUES
(
"name",
"content"
);
');
// During insertion, `modified` column is set to NOW()
$this->name = 'name';
$this->content = 'content';
$this->modified = time();
// Can I count on this being reflected properly?
?>
我能想到的只有两种可能性可以否定这一点:(1)数据库位于本地时间不同的服务器上;(2) 查询和函数调用之间的时间流逝time()
(我严重怀疑这甚至会产生 1 秒的差异......)。
是否值得花费SELECT
查询来获取更新时间,或者我是否应该坚持调用该time()
函数并冒着下次选择该行时的风险,该modified
值可能与在我的应用程序中实例化时不同?