Previous Thread
Next Thread
Print Thread
Rate Thread
#207124 12/22/2000 4:04 PM
Joined: Feb 2000
Posts: 128
Member
Member
Offline
Joined: Feb 2000
Posts: 128
I'm finding it kind of weird how you keep db connections open and keep grabbing results from it..

Is it because you are trying to take up the least amount of memory on the server as you can?

It seems to be part of the reason why I can't get postgres to work.. PHP likes to print out an error message any time you try to grab a row that doesn't exist.... which tends to happen using your method of grabing the next row (having a count var that increments it's self etc..)

How I usually do it is store all of the results in a disconnected recordset..

Usually what I do (in perl) is have a while statement that grabs a hashref for each row and embeds it into an array, and then I return a reference to that array..

so then you can access the results like:
print $$table_ref[0]{NAME};


Here's some example code of how I do it in perl (and it works very well)

You create a method that looks like this:
sub get {

my ($query) = @_;

my (@return);

my $rs = $DB->do ( $query );


while ( my $data = $rs->fetchrow_hashref() ) {

push @return, { %$data };

} # End: while


$rs->finish();

return ( \@return );

} # End: get



And then to do a query you do this:

$table_ref = $dbh->get ( "select name, pass from user" );

foreach my $tmp ( @$table_ref ) {

$name = $tmp{NAME};
$pass = $tmp{PASS};

}

or:

$name = $tmp[0]{NAME};
$name2 = $tmp[1]{NAME};


This will create a db connection new query and get off the db as quick as possible, and then you just loop through the results.. you never *try* to grab a row that doesn't exist... (which happens a lot in the code you have now)

------------------------------------------------
Jeremy 'PeelBoy' Amberg


------------------------------------------------
Jeremy 'PeelBoy' Amberg
Sponsored Links
Mix505 #207125 12/22/2000 4:53 PM
Joined: May 1999
Posts: 3,039
Guru
Guru
Offline
Joined: May 1999
Posts: 3,039
No real reason that it's coded the way it is. I just went with the basic functions available for DBI in the PERL version and the various sql calls in PHP. It's pretty standard to do your fetch_array, or whatever, in a while. This shouldn't be causing problems. Basically it it doesn't find a row, then it returns a false value. If it's in a while loop then the false value breaks out of the loop. If it's in a for ($i=....) with a counter, then the counter value is retrieved from the number of rows returned by sql, so this shouldn't be a problem.

I'll work on getting the postgres support debugged once I finish getting the rest of the bugs fixed and the next release put out. That is, if I can get my postgres database running again.[]/w3timages/icons/frown.gif[/]

-------------------
Scream
WWWThreads Developer


UBB.threads Developer
Sally #207126 12/22/2000 5:23 PM
Joined: Feb 2000
Posts: 128
Member
Member
Offline
Joined: Feb 2000
Posts: 128
I know.. I Just like to close the connection as quick as I can..

I think using a disconnected record set is the way to go (everybody else does it) :)

If you start from a fresh install using pgsql.. you will get a lot of errors saying "can't jump to row 0 in postgres.inc.php line 70-something" etc etc..

The code works fine until the point where it grabs a rownum that doens't exist (be it 0, or greater).. and then it prints out that annoying message on the site...

When I put the code in a while loop instead of trying to grab a specific row number.. it stoped giving me the error message.

I don't know *why* php prints out an error like this when you try to grab a row num that doesn't exist, but it is.. and I guess it's only happening with pgsql and not mysql.. go figure :(

------------------------------------------------
Jeremy 'PeelBoy' Amberg


------------------------------------------------
Jeremy 'PeelBoy' Amberg

Link Copied to Clipboard
Donate Today!
Donate via PayPal

Donate to UBBDev today to help aid in Operational, Server and Script Maintenance, and Development costs.

Please also see our parent organization VNC Web Services if you're in the need of a new UBB.threads Install or Upgrade, Site/Server Migrations, or Security and Coding Services.
Recommended Hosts
We have personally worked with and recommend the following Web Hosts:
Stable Host
bluehost
InterServer
Visit us on Facebook
Member Spotlight
isaac
isaac
California
Posts: 1,157
Joined: July 2001
Forum Statistics
Forums63
Topics37,573
Posts293,925
Members13,849
Most Online5,166
Sep 15th, 2019
Today's Statistics
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
Top Posters
AllenAyres 21,079
JoshPet 10,369
LK 7,394
Lord Dexter 6,708
Gizmo 5,833
Greg Hard 4,625
Top Posters(30 Days)
Top Likes Received
isaac 82
Gizmo 20
Brett 7
WebGuy 2
Morgan 2
Top Likes Received (30 Days)
None yet
The UBB.Developers Network (UBB.Dev/Threads.Dev) is ©2000-2024 VNC Web Services

 
Powered by UBB.threads™ PHP Forum Software 8.0.0
(Preview build 20221218)