А что это вообще такое?


         

Пример


Задача: из SQL-сервера А достать данные, положить в SQL-сервер Б.

Если оба SQL-сервера доступны с какой-то машины, можно так:

^connect[А]{
    $data[
#       код, наполняющий data данными из SQL-сервера A
    ]
    ^connect[Б]{
         ^
void:sql{insert into table x (x) values ('$data')}
    }
}

При этом $data в SQL-запросе insert будет правильно обработан по правилам SQL-диалекта сервера Б.

Однако если оба SQL-сервера недоступны одновременно с какой-то машины, можно так:

^connect[А]{
    $data[
#       код, наполняющий data данными из SQL-сервера A
    ]
    $string[^
untaint[sql]{insert into table x (x) values ('$data')}]
    ^connect[локальный фиктивный Б]{
#       это соединение нужно только для того, 
#       чтобы задать правила обработки для SQL-диалекта сервера Б
        ^string.save[B-inserts.sql]
    }
}

При этом в файл B-inserts.sql запишется правильно обработанный SQL-запрос.









Содержание  Назад  Вперед