【问题标题】:Extract Drupal encoded data using MySQL from Ubercart table使用 MySQL 从 Ubercart 表中提取 Drupal 编码数据
【发布时间】:2023-03-06 09:04:01
【问题描述】:

我正在编写 Drupal/Ubercart 和内部管理系统之间的集成。

客户使用带有属性的 Ubercart 产品(例如牌匾,其中可以包含姓名、公司、注册日期和月份)。下订单时,为属性输入的值将写入uc_order_products,其中data 字段包含用户输入的实际值。据我所知,这是唯一存储最终用户下订单时输入的产品属性值的地方。

编码的属性值使用 Drupal 表中常见的格式来编码对象:

a:3:{s:10:"attributes";a:4:{s:26:"Name (to appear on plaque)";a:1:{i:0;s:10:"Some  
Namee";}s:7:"Company";a:1:{i:0;s:28:"Some Company Name Goes here_";}s:19:"Certification 
Month";a:1:{i:0;s:0:"";}s:18:"Certification Year";a:1:
{i:0;s:4:"2011";}}s:9:"shippable";s:1:"1";s:6:"module";s:10:"uc_product";}

然后展开,是这样的:

a:3:
{
    s:10:"attributes";
    a:4:
        {
            s:26:"Name (to appear on plaque)";
            a:1:
                {
                    i:0;
                    s:10:"Some Namee";
                }
            s:7:"Company";
            a:1:
                {
                    i:0;
                    s:28:"Some Company Name Goes Herep";
                }
            s:19:"Certification Month";
            a:1:
                {
                    i:0;
                    s:0:"";
                }
            s:18:"Certification Year";
            a:1:
                {
                    i:0;
                    s:4:"2011";
                }
        }
    s:9:"shippable";
    s:1:"1";
    s:6:"module";
    s:10:"uc_product";
}

我有一种简单的方法可以使用 SQL 获取此文本中的各个字段值吗?我可以编写一个 SQL 函数来查找细节,但我想知道是否有人知道现有的 MySQL 方法(可能在 Drupal 中)可以做到这一点。

谢谢!

【问题讨论】:

    标签: sql mysql drupal ubercart


    【解决方案1】:

    不知道是否存在任何内置解决方案,但我最终编写了一个 SQL 函数,它以 Name (to appear on plaque) 之类的参数文本为参数。然后该函数定位文本并提取后续的{ ... } 块并从中检索相应的字符串值。粗略,但在这种情况下有效。

    如果有人有更好的解决方案,我很想听听!

    【讨论】:

      【解决方案2】:

      这是一个序列化数组,表示在 Drupal 将其插入数据库之前由 PHP's serialize() function 处理的数据。使用opposite function unserialize() 将该字符串转回数组。

      【讨论】:

      • 感谢 PHP 序列化链接。
      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 2015-08-27
      • 2017-05-22
      • 1970-01-01
      • 2011-03-02
      • 2014-06-20
      • 2018-06-30
      • 2011-06-04
      相关资源
      最近更新 更多