У меня есть строка с конкатенированными значениями, выполненными в MySQL, как показано ниже:
CONCAT("[\"",GROUP_CONCAT(DISTINCT(concat_ws("=>",val_1, val_2,val_3)) ORDER BY val_4 DESC SEPARATOR "\",\""),"\"]")
Я заметил, что вывод каждой строки кажется неполным, из var_dump
это выглядит так:
"["CONFECTIONERY=>BISCUITS=>CRACKERS",
"CONFECTIONERY=>BISCUITS=>COOKIES",
"ORIENTAL GROCERY=>KOREAN GROCERY=>KOREAN FOOD (DRY, PACKET)",
"BEVERAGE=>COFFEE=>PREMIX COFFEE POWDER",
"CLEANING AGENT & PEST CONTROL=>LAUNDRY=>LAUNDRY LIQUID",
"CLEANING AGENT & PEST CONTROL=>LAUNDRY=>LAUNDRY POWDER",
"BEVERAGE=>TEA=>WESTERN TEA",
"CEREAL & SPREADS=>CEREAL=>"
В нем отсутствует закрывающая квадратная скобка, а также третий элемент после символа =>. А также другие строки прерываются в том же месте. Если я попытаюсь json_decode
в PHP, этот вывод я получу NULL, вероятно, потому, что он плохо закодирован, так как самые длинные строки (более 345 символов) обрезаны.
Или, может быть, проблема связана с длиной строки? Потому что я заметил, что они очень длинные и прерываются в той же позиции, что и символы. См. приведенный ниже снимок экрана с выходными данными mysqlworkbench:
Я также посчитал, и в каждой строке ровно 345 символов, и она прерывается в одной и той же точке. Это не похоже на совпадение:
Из того, что я вижу, я должен был правильно экранировать символы. Какие-либо предложения?
xdebug.var_display_max_data
. - person   schedule 08.09.2018SET SESSION
- person   schedule 08.09.2018