Я пишу часть интеграции между 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), который сделал бы это.
Спасибо!