Re: [SQL] What do I need to escape in an Insert ?

Поиск
Список
Период
Сортировка
От Dan Delaney
Тема Re: [SQL] What do I need to escape in an Insert ?
Дата
Msg-id Pine.BSF.3.96.980730212535.2790A-100000@dionysia.org
обсуждение исходный текст
Ответ на What do I need to escape in an Insert ?  (Daniele Orlandi <daniele@orlandi.com>)
Ответы Re: [SQL] What do I need to escape in an Insert ?  (Bruce Momjian <maillist@candle.pha.pa.us>)
Список pgsql-sql
On Fri, 31 Jul 1998, Daniele Orlandi wrote:
> Suppose I'm going to insert the content of a <TEXTAREA> in a
> table.  Obviously, there will be characters that could potentially
> confuse the SQL statement. What (and how) do I need to escape the
> data to make it acceptable for an Insert ?  I currently use the
> PHP's addlashed function, is it enought ?

I'm not sure if PHP's addslashes command will take care of single
quotes, I haven't tried it yet. I believe the proper escape for a
single quote in SQL is to put another single quote in front of it.
So if a person's last name is "O'Brien" it would be inserted as:

INSERT INTO personel (fname,lname) VALUES ('Michael','O''Brien');

So what I do is a Regular Expression Replace in PHP, like this:

   $lname = ereg_replace("'", "''", $lname);

That replaces every occurance of a single quote with TWO sinle
quotes, which satisfies PostgreSQL in the INSERT command. I don't
know if PostgreSQL would take "O\'Brien" or not.

Also, since I'm doing an entirely web-based interface for my
databases, when I have a textarea to go into a field, I go ahead and
store paragraph tags in the table. Like this:

     /* Replace two returns with paragraph tags */
     $description = ereg_replace("\n\n", "</P>\n\n<P>", $description);
     $notes = ereg_replace("\n\n", "</P>\n\n<P>", $notes);

     /* Replace just one return with <BR> */
     $description = ereg_replace("\n", "<BR>\n", $description);
     $notes = ereg_replace("\n", "<BR>\n", $notes);

     /* Add Paragraph tags to beginning and end */
     $description = "<P>".$description."</P>";
     $notes = "<P>".$notes."</P>";

There may be an easier way to do that, but this works great for now.
So, in the textarea on the web page, the person entering the data
can hit return once to put a <BR> tag into it, and hit return twice
to actually start a new paragraph.

 --Dan

-----------------------------------------------------------------------
 Daniel G. Delaney                    The Louisville Times Chorus
 Dionysos@Dionysia.org                   www.LouisvilleTimes.org
 www.Dionysia.org/~dionysos/          Dionysia Design
 ICQ Number: 8171285                     www.Dionysia.com/design/
-----------------------------------------------------------------------
                   I doubt, therefore I might be.



В списке pgsql-sql по дате отправления:

Предыдущее
От: Daniele Orlandi
Дата:
Сообщение: What do I need to escape in an Insert ?
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: [SQL] What do I need to escape in an Insert ?