Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php中的DATETIME并将其发布到MySQL以确保事务一致性_Php_Mysql_Datetime_Transactions_Innodb - Fatal编程技术网

获取php中的DATETIME并将其发布到MySQL以确保事务一致性

获取php中的DATETIME并将其发布到MySQL以确保事务一致性,php,mysql,datetime,transactions,innodb,Php,Mysql,Datetime,Transactions,Innodb,以下是这个问题背后的原因链接: 因此,为了确保具有任意数量查询(20+例如查询)的单个事务在多个表中具有100%准确且一致的NOW()值,php如何使用NOW()分配与DATETIME等价的变量(而不是当前时间戳)。在MySQL中执行此操作,因此,您根本不涉及PHP: select @now := now(); insert into .... values (@now) select from ... where x=@now etc.... 一种方法可以是: <?php $now

以下是这个问题背后的原因链接:


因此,为了确保具有任意数量查询(20+例如查询)的单个事务在多个表中具有100%准确且一致的NOW()值,php如何使用NOW()分配与DATETIME等价的变量(而不是当前时间戳)。

在MySQL中执行此操作,因此,您根本不涉及PHP:

select @now := now();

insert into .... values (@now)
select from ... where x=@now
etc....
一种方法可以是:

<?php
$nowFormat = date('Y-m-d H:i:s');
$sql = "INSERT INTO table SET field='$nowFormat'";
$sql2 = "INSERT INTO table SET field='$nowFormat'";
...
您可以执行以下操作:

<?
$now = time();
$sql = "INSERT INTO table SET field=FROM_UNIXTIME($now)";
$sql2 = "INSERT INTO table SET field=FROM_UNIXTIME($now)";
...

如果PHP服务器和Mysql服务器没有相同的默认时区,请小心。请参阅我的答案,以获得没有此问题的替代方案。