将数组保存在 mysql 数据库中
我想在将总订单发送给PayPal之前保存额外的信息。对于每个项目,我都在MySQL数据库中创建了一列,用于存储它。现在我正在考虑将其保存为数组,以便以后可以阅读以创建PHP页面。额外字段取自输入表单字段。
通过使用数组,我可以确保不会混淆信息吗?
我想在将总订单发送给PayPal之前保存额外的信息。对于每个项目,我都在MySQL数据库中创建了一列,用于存储它。现在我正在考虑将其保存为数组,以便以后可以阅读以创建PHP页面。额外字段取自输入表单字段。
通过使用数组,我可以确保不会混淆信息吗?
可以使用序列化/反
序列化来
存储数组。使用该解决方案,它们不能轻松地从其他编程语言中使用,因此您可以考虑使用json_encode
/ json_decode
(这为您提供了广泛支持的格式)。避免为此使用 / ,因为您可能最终会遇到错误或安全漏洞。implode
explode
请注意,这会使表非规范化,这可能是一个坏主意,因为您无法轻松查询数据。因此,在继续之前,请仔细考虑这一点。您是否需要查询数据以获取统计信息或其他方式?是否有其他原因需要规范化数据?
另外,不要保存原始数组。有人可以轻松地制作自己的Web表单并将数据发布到您的网站,从而发送一个占用大量空间的非常大的表单。保存所需的字段,并确保在保存数据之前验证数据(这样您就不会得到无效值)。$_POST
像这样的事情的完成方式是序列化数组,这意味着“从中制作一个字符串”。为了更好地理解这一点,请看一下:
$array = array("my", "litte", "array", 2);
$serialized_array = serialize($array);
$unserialized_array = unserialize($serialized_array);
var_dump($serialized_array); // gives back a string, perfectly for db saving!
var_dump($unserialized_array); // gives back the array again