不按时间顺序插入mysql表中的数据

iugsix8n  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(257)

我有一个php脚本,它每1分钟运行一次(cron),查询一个远程api,获取一个数字并将其插入mysql表中。问题是,并不是表中的每一行都是按时间顺序插入的。
例子:

id    AddDate                     Price
1864    2017-09-07 05:25:01.000000  439
1865    2017-09-07 05:26:01.000000  439
1866    2017-09-07 05:28:01.000000  439
1867    2017-09-07 05:29:01.000000  459
1868    2017-09-07 05:30:01.000000  539
1869    2017-09-07 05:31:01.000000  536
1870    2017-09-07 05:32:01.000000  436
1871    2017-09-07 05:33:01.000000  537
1872    2017-09-07 05:27:01.000000  539
1873    2017-09-07 05:34:01.000000  456
1874    2017-09-07 05:35:01.000000  456

就像你看到的那样 2017-09-07 05:26:01 进来了 2017-09-07 05:28:01 以及 2017-09-07 05:27:01 来得晚了很多。
下面是php脚本:

$AddDate = trim(date("Y-m-d H:i:s"));
$Price = getprice();

$adddata_PRST = $MYPDO->prepare("INSERT INTO tblData (AddDate, Price) VALUES(:AddDate, :Price)");
$adddata_PRST->bindValue(":AddDate", $AddDate);
$adddata_PRST->bindValue(":Price", $Price);
$adddata_PRST->execute() or die($MYPDO->errorInfo());

我想这不是cron的问题,而是我没有使用 $MYPDO->beginTransaction(); 以及 $MYPDO->commit(); ? 或者是别的什么?
先谢谢你。

tsm1rwdh

tsm1rwdh1#

更改以下行

$adddata_PRST = $MYPDO->prepare("INSERT INTO tblData (AddDate, Price) VALUES(:AddDate, :Price)");

具有

$adddata_PRST = $MYPDO->prepare("INSERT INTO tblData (AddDate, Price) VALUES(NOW(), :Price)");

希望有帮助。
谢谢

相关问题