我正在创建一个新的应用程序,它将与各种外部bot集成在一起,并且该bot将访问我的网站以获取有关新订单的特定信息。该应用程序将按以下方式工作:
客户创建新订单(订单信息存储在数据库中)
客户被带到一个新页面,在那里他们将填写一个简短表格,并向其显示有关其订单的其他随机信息。
客户在输入中插入例如其名称,然后提交表单。
名称和附加信息(这将是1到5个项目,每个项目都有相应的数量)被保存到新表中。
机器人访问网站并收集此信息。
该机器人执行其任务,并响应该站点以告知其已完成。
我目前已设置了所有内容,但我遇到了一个难题,即找出存在多个信息时保存,存储和读取“其他信息”的最佳方法。我认为最好的方法是将信息收集到一个数组中(在PHP中),进行序列化,然后保存到表中,然后在以后查询该机器人要读取的信息时,对它进行反序列化。
这是机器人将在其中读取信息的页面:
$conn = new mysqli($server, $user, $password, $db);
if($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare('SELECT
s.entity_id, s.increment_id, m.server_index, m.ign, mi.item_info, m.timestamp, s.total_qty_ordered, m.bot_status
FROM sales_flat_order as s
INNER JOIN delivery_data as m ON s.entity_id = m.entity_id
INNER JOIN delivery_item_data as mi ON m.entity_id = mi.entity_id
WHERE s.store_id = "3" AND m.ready_status = "1" AND m.bot_status = 0'
);
$stmt->execute();
$result = $stmt->get_result();
此问题正在结果循环中显示item_info
。
例如,正在保存和序列化的信息是:
array(array(0,5000),array(1,4000))
序列化:
a:2:{i:0;a:2:{i:0;i:0;i:1;i:999999;}i:1;a:2:{i:0;i:0;i:1;i:1999999;}}
首先,这是最好的方法吗? 其次,我无法将其余的所需信息反序列化为可读格式。
这是完成的数组的外观:
Array
(
[0] => Array
(
[entity_id] => 8333
[increment_id] => 300000028
[server_index] => 2
[ign] => TestName
[item_info] => Array
(
[0] => 0
[1] => 5000
)
Array
(
[0] => 1
[1] => 4000
)
[timestamp] => 2019-03-26 00:00:00
[total_qty_ordered] => 20.0000
[bot_status] => 0
)
)