Сохранить косую черту в MySQL, выбранную в PHP - PullRequest
0 голосов
/ 14 ноября 2018

ПРЯМО С БД

Когда я выбираю напрямую из db, я получаю косую черту без проблем.

Запрос:

SELECT REPLACE(`row`, '"', '\\"') as data FROM `table`

Результат прямого запроса:

a:1:{i:0;s:0:\"\";}

ОТ PHP

Но когда все сделано в PHP (особенно в CI), косая черта исчезнет. Строка запроса:

"SELECT REPLACE(`row`, '\"', '\\\"') as data FROM `table`"

Запрос из PHP результата:

a:1:{i:0;s:0:"";}

Вопрос: Как мне поддерживать слеш в PHP?


Примечание: я пытаюсь использовать group_concat с другими значениями в виде строки формата json, поэтому мне нужны косые черты, чтобы они не нарушали формат, пример полного вывода:

{"field_1":"Some Value","field_2":"a:1:{i:0;s:0:\"\";}"}

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

Ваши два запроса не эквивалентны: ваш код PHP оценивается как

php > echo "SELECT REPLACE(`row`, '\"', '\\\"') as data FROM `table`";
SELECT REPLACE(`row`, '"', '\"') as data FROM `table`

Вы избегаете только одной косой черты;вам нужна дополнительная пара:

"SELECT REPLACE(`row`, '\"', '\\\\\"') as data FROM `table`"

, что приводит к исходному запросу:

php > echo "SELECT REPLACE(`row`, '\"', '\\\\\"') as data FROM `table`";
SELECT REPLACE(`row`, '"', '\\"') as data FROM `table`
0 голосов
/ 14 ноября 2018

Я не понимаю, какова эта цель, но, возможно, вы можете использовать этот братан. тот же результат, что и для прямой косой черты.

json_encode(); 

Когда выбрано, просто верните json_encode ($ value) , чтобы оно сохраняло прямую косую черту.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...