[Moscow.pm] escaping chars in sql

bessarabov ivan на bessarabov.ru
Пн Янв 5 13:05:09 PST 2009


Привет.

Что-то не могу сообраить. Пишу в sqlite базу:

$sth = $dbh->prepare("INSERT INTO t1 (f1, f2) VALUES ('$foo', '$bar')");

Все пишется прексрано, но когда в скаляр
попадает одинчная кавычка все чудестно
падает:
DBD::SQLite::db prepare failed: near "s": syntax error(1) at dbdimp.c line
271 at foobar.pm line 74.

Я решил это, заменяя одиночную кавычку на
двойную ($foo =~ s/'/"/g;) перед insert.

Все работает, но у меня есть следующие
вопросы:

 1. Можно ли как-нибудь заэскейпить
одиночную кавычку в sql запросе, чтобы она
все-таки попадала в поле таблицы?
 1. Нужно ли что-нить еще эскейпить?

-- 
bessarabov


Подробная информация о списке рассылки Moscow-pm