Re: Getting arrays from a result set?

From: Doug Semig <dougslist(at)semig(dot)com>
To: pgsql-php(at)postgresql(dot)org
Subject: Re: Getting arrays from a result set?
Date: 2000-08-28 04:22:50
Message-ID: 3.0.6.32.20000828002250.007ad750@sloth.c3net.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-php

Make a column of type text. Just before the UPDATE (or INSERT, as the case
may be), serialize the array and addslashes (in that order: serialize,
addslashes, INSERT/UPDATE).

When retrieving the data, SELECT out the column, then stripslashes then
unserialize the data back into an array.

Reference: http://www.php.net/manual/function.serialize.php

Doug

At 11:30 PM 8/27/00 -0400, Louis Bertrand wrote:
>The way the session table is set up, I have one record per active
>session. When the user comes back for another hit, I retrieve the session
>particulars contained in the record based on the sessionID presented in
>the GET URL or hidden field in the POST. The sessionID is the primary key.
>
>I suppose I could create a separate table of pending transactions, with
>a sequence to keep them in order, referencing the sessionid.
>Is that along the lines of what you were suggesting?
>
>Thanks
> --Louis <louis(at)bertrandtech(dot)on(dot)ca>
>
>
>On Mon, 28 Aug 2000, The Hermit Hacker wrote:
>
>>
>> why not insert multiple records instead, serialized for order?
>>
>> On Sun, 27 Aug 2000, Louis Bertrand wrote:
>>
>> > Hello,
>> >
>> > I am trying to save an array of strings in a column, but I can't figure
>> > out how to retrieve it from within PHP3. What I'm hoping to accomplish is
>> > to store a sequence of update SQL statements resulting from a posted
form,
>> > then output a Confirm (Yes/No) form. If the user clicks Yes, I retrieve
>> > the SQL statements from the session table and execute them in a
>> > transaction.
>> >
>> > I added the column:
>> > alter table sessions add column pending varchar(240)[];
>> >
>> > db=> \d sessions
>> > | pending | varchar[] | var |
>> >
>> > I insert the strings with:
>> > db=> update sessions set pending = '{ \'blah\', \'blorg\'}' where
>> > sessionid = 'f38ca9c5f28fd13bd9619b13b5d8f2fc';
>> > UPDATE 1
>> >
>> > Then the select:
>> > db=> select pending from sessions where sessionid =
>> > 'f38ca9c5f28fd13bd9619b13b5d8f2fc';
>> > {" 'blah'","'blorg'"}
>> > (1 row)
>> >
>> > Then I do the following PHP code:
>> > $selectsql = "SELECT pending"
>> > ." FROM sessions WHERE"
>> > ." sessionid = '$SessionID'";
>> > $result = @pg_Exec( $conn, $selectsql);
>> > if( $result && ( pg_NumRows($result) > 0)) {
>> > $transactions = pg_Result( $result, 0, "pending");
>> > echo "<br>pending=" . $transactions;
>> > }
>> > else {
>> > echo "<br>No transactions";
>> > } }
>> >
>> > This is what I get:
>> > pending={" 'blah'","'blorg'"}
>> >
>> > I suppose I can always tokenize and parse the string, but I'm hoping
there
>> > is a classier way around this. I'm afraid of using temporary tables
>> > because I don't want them cluttering the database when users abandon
their
>> > sessions.
>> >
>> > Using PHP3.0.16 and PostgreSQL 6.5.2 on OpenBSD (no, I haven't had
time to
>> > upgrade yet).
>> >
>> > Any thoughts?
>> >
>> > Thanks
>> > --Louis <louis(at)bertrandtech(dot)on(dot)ca>
>> >
>> > Louis Bertrand http://www.bertrandtech.on.ca/
>> > Bertrand Technical Services, Bowmanville, ON, Canada
>> > Tel: +1.905.623.1500 Fax: +1.905.623.3852
>> >
>> > OpenBSD: Secure by default. http://www.openbsd.org/
>> >
>> >
>>
>> Marc G. Fournier ICQ#7615664 IRC Nick:
Scrappy
>> Systems Administrator @ hub.org
>> primary: scrappy(at)hub(dot)org secondary:
scrappy(at){freebsd|postgresql}.org

In response to

Browse pgsql-php by date

  From Date Subject
Next Message Chris 2000-09-11 06:43:50 saving files in a database
Previous Message The Hermit Hacker 2000-08-28 03:35:04 Re: Getting arrays from a result set?