align="justify">> Екранізування сімволів це позбав способ запису коректний SQL-вираженною, Трохи больше того. З Даними Щось відбувається, и смороду у базі без Додатковий слешів - оскількі виглядать спочатку, ще до йо екранізування.
З Використання mysql_escape_string () код попередня запиту така:
> mysql_query (
"> DELETEFROMtableWHEREname = '". mysql_escape_string ($ name). "'");
Це довго, незграбних и негарно.
.3.2 шаблонно Запитів PlaceHolders
Розглянемо Інше решение.
Замість явного екранізування и вставки змінніх в запит з їхньої місце поміщають СПЕЦІАЛЬНІ маркери (> placeholders, "Хранителі місця"), зазвічай Які Схожі на?. Ті ж значення, а Які поставлено натомість, передаються окремо, додатково параметрами. З використаних гіпотетічної Функції mysql_qwo, код Якої уявлень нижчих, запит те, Можливо переписання так:
> mysql_qw ('> DELETEFROMtableWHEREname =?', $> name);
Запитів ставши коротше ї краще захіщеній: тепер ми Вже во время написання коду НЕ зможемо Випадкове Пропустити виклик Функції mysql_escape_string () отже, потрапіті на хітрість хакера. УСІ Зміни відбуваються автоматично, всередіні Функції. p align="justify"> У лістингу lib_mysql_qw.php містіться найпростіша реалізація Функції mysql_qw () (> qw - від анг.querywrapper, "обгортка для запиту"). Є такоже бібліотека lib/Placeholder.php, Забезпечує однозначно больше потужном підтрімку мови PlaceHolders: dklab/chicken/30.html. p align="justify"> У багатьох СИТУАЦІЙ можливіть, НАДАННЯ функцієюmysql_qw (), вістачає.
> Лістинг lib_mysql_qw.php
PHP # # Найпростіша функція до роботи з placeholders.
// result-set, mysql_qw ($> connection_id, $> query, $> argl, $> arg2 ...).
// - чи -
// result-setmysql_qw ($ query, $> argl, $> arg2, ...)
// Функція Виконує запит до MySQL через з'єднання, завдань як
// $> connection_id (а то й зазначено, то через Останнє Відкрите).
// Параметр $> query может містіті підстановочні знаки?,
// вместо якіх поставлено відповідні Значення
// аргументів $> arg1, $> arg2 ТОЩО. буд. (Усьо своєю Божою черго), екрановані и
// укладені апостроф.
> function mysql_qw ()
{//Отрімуємо ВСІ Можливі аргументами Функції.
$> args = func_get_args ();
// Если HP перший параметр має тип "ресурс", це ID-з єднання.
$> соnn = null;
> if (> is_resource ($ args [0])) $> con...