Я просто не знаю, как решить проблему ниже:
У меня есть API, сделанный с рамкой углубления, и все работает нормально, пока я не установлю RecessConf::$mode = RecessConf::PRODUCTION
,
Эта проблема:
В режиме ПРОИЗВОДСТВА мои вставки в БД работают плохо.
Я использую этот код для вставки:
Для запросов:
$sessionData = new SessionData();
$sessionData->parent_id = NULL;
$sessionData->request_id = 1234567;
$sessionData->request_click_id = asld1212312llkn1212;
$sessionData->request_name = 'myRequestName';
$sessionData->ip_address = NULL;
$sessionData->save();
$ID = $sessionData->id;
Затем:
$user = new User();
$user->session_data_id = $ID;
$user->session_request_id = 1234567;
$user->data = json_encode( ['name' => 'Test', 'email' => '[email protected]'] );
$user->save();
Затем:
Это для ответа (обратите внимание, что parent_id должен совпадать с идентификатором из первого запроса):
$sessionData = new SessionData();
$sessionData->parent_id = $ID;
$sessionData->request_id = 78901234;
$sessionData->request_click_id = xy.cmy.qp1212121;
$sessionData->request_name = 'myResponeName';
$sessionData->ip_address = NULL;
$sessionData->save();
И $sessionData->parent_id
абсолютно случайно. Иногда это появляется в базе данных, но в большинстве случаев нет.
Я уверен, что у меня есть $ID
потому что, если я сбрасываю его, я вижу, и если я пытаюсь вставить фиксированный номер, как
$sessionData->parent_id = 123;
это все еще совершенно случайно.
Но в режиме РАЗВИТИЯ все работает как положено.
Заранее спасибо,
Схема для session_data
Таблица:
CREATE TABLE `session_data` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`parent_id` varchar(11) DEFAULT NULL,
`request_id` varchar(255) NOT NULL,
`request_click_id` varchar(255) DEFAULT NULL,
`request_name` varchar(255) NOT NULL,
`ip_address` varchar(255) DEFAULT NULL,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Схема для таблицы пользователя:
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`session_data_id` varchar(255) NOT NULL,
`session_request_id` varchar(255) DEFAULT NULL,
`ip_address` varchar(255) DEFAULT NULL,
`data` text,
`created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Задача ещё не решена.
Других решений пока нет …