Q:

Tratamento "escape" em query (escape de caracteres)

Cenário:
Query da inserção:
public function forward($descricao)
{
    ($descricao == '') ? $descricao = 'NULL' : $descricao = "'{$descricao}'" ;
    $sql_enc = " INSERT INTO rg_encaminhamentos (`descricao`) VALUES ($descricao) ";

}

Estou inserindo no texto (no caso na $descricao):
SET UF = 18
WHERE DOCUMENTO IN (SELECT HANDLE FROM DOCUMENTOS
WHERE DOCUMENTODIGITADO IN ('218747','218748','218786','218787','218794',
'218795','218839','218840','218885','218886','218914','218915'))

Problema:
O erro na query ocorre, pois o texto é reconhecido como parte do código.

Dúvida:

Quais as possíveis formas para tratar isso?

A:

Resolvido com o comando addslashes:
public function forward($descricao){

   $descricao = addslashes($descricao);

   ($descricao == '') ? $descricao = 'NULL' : $descricao = "'{$descricao}'";

   $sql_enc = " INSERT INTO rg_encaminhamentos (`descricao`) VALUES ($descricao) ";
}

O comando adiciona as barras para escapar os caracteres.
Manual oficial:
http://php.net/manual/pt_BR/function.addslashes.php

