пятница, 9 сентября 2011 г.

Re: PostgreSQL full text search

sanitize_sql_array(['...SQL... field = ?', value])

9 сентября 2011 г. 15:25 пользователь Akzhan Abdulin
<akzhan.abdulin@gmail.com> написал:
> Тогда вам уже показали escape.
> если не хотите использовать функционал Rails, используйте функционал
> драйвера:
>
> irb(main):001:0> conn = PGconn.connect( :dbname => 'test' )
> => #<PGconn:0x101037670>
> irb(main):002:0> conn.escape("Foo \\")
> => "Foo \\\\"
> irb(main):003:0> PGconn::VERSION
> => "0.9.0"
>
> 9 сентября 2011 г. 15:23 пользователь JPascal <eshurmin@gmail.com> написал:
>>
>> query является строкой для поиска, а не именем объекта в БД по этому
>> убирать ничего не надо, надо только экранировать.
>>
>> On 9 сен, 15:09, Akzhan Abdulin <akzhan.abdu...@gmail.com> wrote:
>> > PostgreSQL Naming Rules
>> >
>> > When you create an object in PostgreSQL, you give that object a name.
>> > Every
>> > table has a name, every column has a name, and so on. PostgreSQL uses a
>> > single data type to define all object names: the name type.
>> >
>> > A value of type name is a string of 63 or fewer characters1. A name must
>> > start with a letter or an underscore; the rest of the string can contain
>> > letters, digits, and underscores.
>> > Ну и точка - разделитель пространств имен.
>> >
>> > http://www.informit.com/articles/article.aspx?p=409471
>> >
>> > 9 сентября 2011 г. 15:05 пользователь Akzhan Abdulin <
>> > akzhan.abdu...@gmail.com> написал:
>> >
>> >
>> >
>> >
>> >
>> >
>> >
>> > > Вы должны удалять все символы, которые не являются валидными для имени
>> > > таблицы. На самом деле не только удалять, но и валидировать на входе.
>> > > Насколько я понимаю, валидно [\w\.]
>> >
>> > > 9 сентября 2011 г. 14:59 пользователь JPascal
>> > > <eshur...@gmail.com>написал:
>> >
>> > > Я вот так делаю, это пойдет?
>> >
>> > >> query.gsub(/\\/, '\&\&').gsub(/'/, "''")
>> >
>> > >> On 9 сен, 14:47, Akzhan Abdulin <akzhan.abdu...@gmail.com> wrote:
>> > >> > query.gsub(/[^\w\.]/, '')
>> >
>> > >> > 9 сентября 2011 г. 14:33 пользователь JPascal <eshur...@gmail.com>
>> > >> написал:
>> >
>> > >> > > Не не... внимательно посмотрите на метод
>> > >> > > from("messages,plainto_tsquery('#{query}') q") тут чистая вставка
>> > >> > > текста что пользователь наберет в форме с сайта, а это опасно.
>> >
>> > >> > > On 9 сен, 14:31, Andrew Hoffmann aka SKYDOS
>> > >> > > <andrewsh...@gmail.com>
>> > >> > > wrote:
>> > >> > > > .where("msg=?", query)
>> >
>> > >> > > > On 09/09/2011 02:30 PM, JPascal wrote:
>> >
>> > >> > > > > .
>> > >> > > > > .
>> >
>> > >> > > > > query = "test"
>> > >> > > > > Message.select("*, ts_headline(message,
>> > >> > > > > q,'HighlightAll=true') as
>> > >> > > > > highlight").where("message @@
>> > >> > > > > q").from("messages,plainto_tsquery('#{query}') q")
>> >
>> > >> > > > > SELECT *, ts_headline(message, q,'HighlightAll=true') as
>> > >> > > > > highlight
>> > >> > > > > FROM messages,plainto_tsquery('test') q WHERE (message @@ q)
>> >
>> > >> > > > > query , .
>> >
>> > >> > > > > ?
>> >
>> > >> > > > > :
>> > >> >
>> > >> > > >http://www.postgresql.org/docs/8.3/static/textsearch-controls.html#TE.
>> > >> ..
>> >
>> > >> > > --
>> > >> > > --
>> > >> > > Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
>> > >> группы
>> > >> > > "RubyOnRails to russian" на группах Google.
>> > >> > > FAQ группы находится по
>> > >> > > адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>> >
>> > >> > >  Для того, чтобы отправить сообщение в эту группу, пошлите его по
>> > >> адресу
>> > >> > > ror2ru@googlegroups.com
>> > >> > >  Чтобы отменить подписку на эту группу, отправьте сообщение по
>> > >> > > адресу:
>> > >> > > ror2ru-unsubscribe@googlegroups.com
>> > >> > >  Дополнительные варианты находятся на странице группы
>> > >> > >http://groups.google.com/group/ror2ru?hl=ru
>> >
>> > >> --
>> > >> --
>> > >> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком
>> > >> группы
>> > >> "RubyOnRails to russian" на группах Google.
>> > >> FAQ группы находится по адресу:http://ru.wikibooks.org/wiki/RubyFAQ
>> >
>> > >>  Для того, чтобы отправить сообщение в эту группу, пошлите его по
>> > >> адресу
>> > >> ror2ru@googlegroups.com
>> > >>  Чтобы отменить подписку на эту группу, отправьте сообщение по
>> > >> адресу:
>> > >> ror2ru-unsubscribe@googlegroups.com
>> > >>  Дополнительные варианты находятся на странице группы
>> > >>http://groups.google.com/group/ror2ru?hl=ru
>>
>> --
>> --
>> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
>> "RubyOnRails to russian" на группах Google.
>> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>>
>>  Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
>> ror2ru@googlegroups.com
>>  Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
>> ror2ru-unsubscribe@googlegroups.com
>>  Дополнительные варианты находятся на странице группы
>> http://groups.google.com/group/ror2ru?hl=ru
>
> --
> --
> Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы
> "RubyOnRails to russian" на группах Google.
> FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ
>
> Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
> ror2ru@googlegroups.com
> Чтобы отменить подписку на эту группу, отправьте сообщение по адресу:
> ror2ru-unsubscribe@googlegroups.com
> Дополнительные варианты находятся на странице группы
> http://groups.google.com/group/ror2ru?hl=ru

--
--
Данное сообщение отправлено Вам, так как Вы являетесь подписчиком группы "RubyOnRails to russian" на группах Google.
FAQ группы находится по адресу: http://ru.wikibooks.org/wiki/RubyFAQ

Для того, чтобы отправить сообщение в эту группу, пошлите его по адресу
ror2ru@googlegroups.com
Чтобы отменить подписку на эту группу, отправьте сообщение по адресу: ror2ru-unsubscribe@googlegroups.com
Дополнительные варианты находятся на странице группы http://groups.google.com/group/ror2ru?hl=ru

Комментариев нет:

Отправить комментарий