данные вставлены в таблицу MySQL не в хронологическом порядке - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть 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();? Или это может быть что-то еще?

Заранее спасибо.

1 Ответ

0 голосов
/ 02 сентября 2018

Измените следующую строку

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

С

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

Надеюсь, это поможет.

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...