Бегло просмотрев справочник функций по работе с MySQL в PHP, я не обнаружил действительно удобного способа квотирования специальных символов (кавычек, обрывов строк и т.д. ) в PHP.
Я нашел функцию
string mysql_real_escape_string (string unescaped_string [, resource link_identifier])
Но, на мой взгляд ее использование при большом количестве входных данных не очень удобно.
Хотелось бы привести пример скрипта на Перл, к котором есть более удобный, на мой взгляд, способ решения этой проблемы и спросить у форумчан: есть ли подобная возможность квотирования в языке php:
Perl код:
use strict;
use DBI;
my $dbh = DBI->connect('DBI:mysql:database_name:localhost','user', 'password');
my $external_item1 = 10;
my $external_item2 = 20;
my $external_item3 = '"Hello';
# Создаем запрос. Знаки вопроса означают, что на их место будут вставленны
# данные при выполнении функции execute
my $sth = $dbh->preare("SELECT * FROM table_name
WHERE id = ?
AND value = ?
AND name = ? ");
# А эта функция вставляет данные на место знаков вопроссов,
# автоматически квотируя их
# Т.е. вместо первого знака вопроса вставится квотированное значение
# $external_item1 ... вместо 3-го - $external_item3
$sth->execute($external_item1, $external_item2, $external_item3);
while (my @array = $sth->fetchrow_array()) {
print "Получен новый столбец!\n";
}