Как правильно хранить HTML в PostgreSQL?

197
18 июля 2018, 12:30

Работаю с механизмом снапшотов. Вместо хранения и удалённого краулера prerender предпочёл разместить всё на своём сервере. Делаю запрос на страницу, получаю её исходный код и пытаюсь вставить её в базу. К слову, поле html в таблице имеет тип text. При попытке вставить html в базу получаю ошибку:

2018/06/16 16:17:57 [error] 23147#23147: *55450 FastCGI sent in stderr: "PHP message: PHP Warning: pg_query(): Query failed: ERROR: syntax error at or near "x600" LINE 153: ...age: url('//photo.hotellook.com/static/cities/1000x600/DFW.j... ^ in /var/www/production/engine/functions.php on line 556" while reading response header from upstream

Ошибка появляется на ссылке на изображение, где указываются размеры, на разделитель x между 1000x600. Предполагаю, что это не единственный запрещённый символ.

Текст запроса:

$query = "INSERT INTO snapshots (pathname, html, inserted) VALUES ('{$request_uri}', '{$source_code}', '{$now}')";

Как это исправить?

Answer 1

Случайно нашёл функцию pg_escape_string(), которая помогла решить задачу.

READ ALSO
Не могу в Laravel сделать redirect после ajax запроса?

Не могу в Laravel сделать redirect после ajax запроса?

Программа после успешной регистрации отправляет ajax post запрос в registerController, запрос проходит валидацию, если все успешно должен произойти...

172
Плагин с русской морфологией для elasticsearch 6.2

Плагин с русской морфологией для elasticsearch 6.2

Есть ли уже плагины с русской морфологией для elasticsearch 62 ?

184
Не происходит запись данных в сессию

Не происходит запись данных в сессию

На сайте есть галочка(запомнить меня), всё работаетНо теперь не заносятся данные в неё

133
Как с помощью C++ скачать файл сайта?

Как с помощью C++ скачать файл сайта?

Допустим, есть ссылка http://zzzxx/example

194