вопрос опять же таки идеологический
есть класс
http://mabp.kiev.ua/content/2008/04/20/request/
я в очередном парыве оптимизации решил заменить один из фильтров оттуда
private function _is_SLU
($value){
$this->
value =
str_replace(array("\\",
"\"",
"'",
"(",
")",
"%",
"<",
">",
"{",
"}",
"/",
"&",
"+"),
'',
$value);
}
он чесно говоря популярностью не пользуеться да и смысла я в нем не вижу особого (у когото содрал), предположительная его функцию сейчас выполняет mysql_real_escape_string которой при написании первых версий класса еще не было
вот собственно вопрос поскольку передать идентификатор соединения в функцию нельзя есть два варианта
private function _is_SQL
($value){
// @ гасит ошибку если нет соединения с БД
$this->
value = @
mysql_real_escape_string($value);
}
при этом варианте возможно два развития событий
1 cсоединенеи с БД еще не было установлено и функция вернет false
2 функция будет использовать последние открыое соединение
обе ситауции мне не подходят так как при первой я вообще потеряю инфу а при второй я могу промахнуться и отэкранирую например для мсскул а засуну в мускул
результат вообще мне не нравиться така как не зависит от БД
варианты addslashes и использования встроеных возможностей DBAL типа
$stmt =
$adodb->
Prepare("SELECT * FROM table WHERE id = ?");
$adodb->
Execute($stmt,
array($id));
не рассматриваються