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:
Shock Hosting
Stable Host
bluehost
InterServer
Visit us on Facebook
Member Spotlight
isaac
isaac
California
Posts: 1,153
Joined: July 2001
Forum Statistics
Forums63
Topics37,583
Posts293,955
Members13,825
Most Online151,614
Nov 14th, 2025
Today's Statistics
Currently Online 3863
Topics Created 0
Posts Made 0
Users Online 0
Birthdays 10
Top Posters
AllenAyres 21,080
JoshPet 10,369
LK 7,394
Lord Dexter 6,708
Gizmo 5,834
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-2026 VNC Web Services

 
Powered by UBB.threads™ PHP Forum Software 8.1.0
(Snapshot build 20260108)