|
|
Joined: Feb 2000
Posts: 128
Member
|
Member
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
|
|
|
|
Joined: May 1999
Posts: 3,039
Guru
|
Guru
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
|
|
|
|
Joined: Feb 2000
Posts: 128
Member
|
Member
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
|
|
|
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.
|
|
Posts: 1,157
Joined: July 2001
|
|
Forums63
Topics37,573
Posts293,925
Members13,849
|
Most Online5,166 Sep 15th, 2019
|
|
Currently Online
Topics Created
Posts Made
Users Online
Birthdays
|
|
|
|
|