|
|
sybperl-l Archive
Up Prev Next
From: "Pham, Tuan A" <Tuan dot A dot Pham at siemenscom dot com>
Subject: RE: help with inserting text
Date: Mar 11 1998 7:26PM
Hi,
Can you give an example of using dbwritetext() to put long text to
TEXT columns as a replacement of this code sample ?
Tuan Pham
>-----Original Message-----
>From: philip mikal [SMTP:philipm@nafohq.hp.com]
>Sent: Wednesday, February 18, 1998 4:48 PM
>To: SYBPERL-L@trln.lib.unc.edu
>Subject: Re: help with inserting text
>
>Hello again!
>
>FYI, after much frustration and lots of help from this list, the final
>solution
>for my problem is listed below. I would have been lost without everyone's
>help - especially Michael, for recommending the qq() method, which was the
>final element to functionality.
>
>Regards,
>
>
>Philip Mikal
>
>------------------------------
>sub loadindexdata {
>
>open (LINKS, "index.data") || &CgiDie ("I am sorry, but I was
> not able to open the link database. The value I have is
> index.data. Would you please check the path and the permission.");
>
>while ()
> {
> $_ = $dbh->dbsafestr($_);
> ($link_title, $id, $unique_id, $link_url, $link_description, $author_email,
>$author_name) = split (/\|/, $_);
> $select = qq(insert into link_table values ("$link_title", $id, $unique_id,
>"$link_url", "$link_description"));
> $dbh->dbcmd("$select");
> $dbh->dbsqlexec;
> $select = qq(insert into link_owners_table values ($unique_id,
>"$author_name", "$author_email"));
> $dbh->dbcmd("$select");
> $dbh->dbsqlexec;
> }
>close (LINKS);
>}
>
>------------------------------
>
>>
>> cchrysos@ovid.com wrote:
>> >
>> > It looks like Philip forgot to surround the character strings with
>>quotes.
>> > I believe single quotes will work without confusing Perl.
>> >
>> > My example:
>> >
>> > $select = "insert into link_table values ('$link_title', '$id',
>> > '$unique_id', '$link_url', '$link_description')"
>> >
>> > Quoting isn't necessary for numeric datatypes like int, float, decimal,
>>and
>> > so on. So, in this example, if the column for $id is an int, it doesn't
>> > need quotes.
>>
>> Note that T-SQL becomes confused if the strings being inserted
>> (say $link_title) itself contains the ' or " character.
>>
>> To minimize this problem I usually use the qq() quoting operator
>> to quote the entire string, and then use " to quote strings in the
>> insert statement. Any string that is to be inserted that
>> contains the " character needs to be checked, and the " duplicated, eg
>>
>> $link_title =~ s/"/""/g;
>>
>> Michael
>> --
>> Michael Peppler -||- Data Migrations Inc.
>> mpeppler@datamig.com -||- http://www.mbay.net/~mpeppler
>>
>
|