2015-03-16 1 views
0

Мне просто нужно сохранить текст (у строк есть отдельная дата).Либо PHP конвертирует значения JSON, чтобы иметь ключи, либо PostgreSQL присваивает значения клавишам

Либо ...

1. Как я прочитал (либо) следующее значение (ы), чтобы РНР массив, который я могу итерации по foreach через петлю?

... или ...

2. Как я INSERT INTO таблицу значение, присвоенное к ключу (который не осветленной вообще в документации PostgreSQL)?

{".022 x 2.031"} 
{".012 x 3.621"} 

Так что я в настоящее время имеют отдельные значения измерения (следует рассматривать как текст чисто для записей) в формате первого формата выше. Я стараюсь, чтобы преобразовать данные строки в PHP и получить Invalid argument supplied for foreach() для следующих целей:

$array = json_decode($row1['material_size']); 

foreach ($array as $k1) {echo $k1;} 
+0

Если бы вы могли реструктурировать это как что-то, что на самом деле было бы JSON, это было бы лучше. '' x "', '[" x "]' и '{" string ":" x "}' являются действительными. '{" x "}' нет. – tadman

+0

@tadman Да, но как я могу сообщить PostgreSQL о присвоении значений ключу? – John

+0

Вы указываете значение JSON как текст, вставляя в него, как и поле строки. В чем проблема? – tadman

ответ

1

Таким образом, после делать даже больше поиска и чтения, я решил посмотреть, если я мог бы просто преобразовать данные с помощью PostgreSQL непосредственно:

SELECT array_to_json(material_size) AS material_size FROM table; 

Теперь я получаю массив данных правильно ...

$array = json_decode($row1['material_size']); 
print_r($array); 

Array 
(
    [0] => .022 x 2.031 
) 
0

AFAIK, измерение представляет собой структурированные данные. Если ваши данные 2-мерные, вы можете использовать тип данных point или создать свой собственный composite type. Я бы предложил использовать Pomm, чтобы преобразовать его в массив PHP.

Если вы хотите использовать Json, то вы можете выбрать на клавишах like stated in the documentation, но вам нужно переписать полное значение JSON каждый раз, когда вы хотите обновить значение.