Re: [PHP] database abstraction layer

2010-02-03 Thread Lester Caine
Ashley Sheridan wrote: On Tue, 2010-02-02 at 23:19 +0100, Rene Veerman wrote: function getMax($table, $field) If I saw this sort of code I'd be appalled! It's possibly the worst way to get the auto increment value. You won't notice it testing the site out on your own, but all hell will break

Re: [PHP] database abstraction layer

2010-02-02 Thread Paul M Foster
On Wed, Feb 03, 2010 at 06:39:29AM +0100, Rene Veerman wrote: > On Wed, Feb 3, 2010 at 5:49 AM, Jochem Maas wrote: > > you can bet you ass that every other DB out there that's worth it's salt > > has atomic id incrementor functionality exposed in some way or other. > > > > @Rene: all that talk of

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
On Wed, Feb 3, 2010 at 5:49 AM, Jochem Maas wrote: > you can bet you ass that every other DB out there that's worth it's salt > has atomic id incrementor functionality exposed in some way or other. > > @Rene: all that talk of maxId functions and random retries etc, etc, is > complete pooh. > don'

Re: [PHP] database abstraction layer

2010-02-02 Thread Jochem Maas
Op 2/3/10 12:19 AM, Ashley Sheridan schreef: > On Wed, 2010-02-03 at 00:21 +0100, Rene Veerman wrote: > >> the auto_increment sytnax is not uniform across servers, is it? >> >> On Wed, Feb 3, 2010 at 12:11 AM, Ashley Sheridan >> wrote: >> >>> I saw it happen on a site that was getting only about

Re: [PHP] database abstraction layer

2010-02-02 Thread Phpster
Lol, damn iPod corrections. The app designers is what was meant. Bastien Sent from my iPod On Feb 2, 2010, at 8:41 PM, Robert Cummings wrote: Phpster wrote: Yep, love those race conditions. We have them all over the app cuz the app ciders don't know shit! Mmmm... apple cider... to cu

Re: [PHP] database abstraction layer

2010-02-02 Thread Paul M Foster
On Tue, Feb 02, 2010 at 11:19:29PM +0100, Rene Veerman wrote: > oh, on using adodb.sf.net and 0-overhead for jumping between mysql and > postgresql; > > keep all your queries to as simple & early-standard sql as possible. > the auto_increment incompatibilities can be circumvented with a > relativ

Re: [PHP] database abstraction layer

2010-02-02 Thread Michael A. Peters
Robert Cummings wrote: *snip* Einstein I believe said something along the lines of "A smart person solves a problem. A wise person avoids it in the first place" Might not have been Einstein, but anyway ... Do you mean the following quote? The difference between a smart person and a wise

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Michael A. Peters wrote: Robert Cummings wrote: Rene Veerman wrote: eh thats "randomize the timing of the retry attempt".. On Wed, Feb 3, 2010 at 12:17 AM, Rene Veerman wrote: and after the sleep(rand(1,3)) it might need a short loop like this; $rnd = rand(1,9); $a=0; for ($i=0; $i<$rn

Re: [PHP] database abstraction layer

2010-02-02 Thread Michael A. Peters
Robert Cummings wrote: Rene Veerman wrote: eh thats "randomize the timing of the retry attempt".. On Wed, Feb 3, 2010 at 12:17 AM, Rene Veerman wrote: and after the sleep(rand(1,3)) it might need a short loop like this; $rnd = rand(1,9); $a=0; for ($i=0; $i<$rnd; $i++) { $a++ } to furt

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Rene Veerman wrote: On Wed, Feb 3, 2010 at 12:18 AM, Ashley Sheridan wrote: The problem is where 2 people choose the same instant to perform an action on your site that inserts a record into your db. The db engine inserts them one after the other, and then responds about the max(id) to your PH

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Phpster wrote: Yep, love those race conditions. We have them all over the app cuz the app ciders don't know shit! Mmmm... apple cider... to cure what ails you or at least get you drunk enough to not care about the horrible race conditions >:) Cheers, Rob. -- http://www.interjinn.com Applica

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Rene Veerman wrote: On Wed, Feb 3, 2010 at 12:35 AM, Ashley Sheridan wrote: It's the reason transactions exist, to prevent things happening like this. When you have two actions where one is dependent on the other, unless you have a way to tie them together so that they can't be broken, you run

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Rene Veerman wrote: On Wed, Feb 3, 2010 at 12:18 AM, Ashley Sheridan wrote: The problem is where 2 people choose the same instant to perform an action on your site that inserts a record into your db. The db engine inserts them one after the other, and then responds about the max(id) to your PH

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Rene Veerman wrote: eh thats "randomize the timing of the retry attempt".. On Wed, Feb 3, 2010 at 12:17 AM, Rene Veerman wrote: and after the sleep(rand(1,3)) it might need a short loop like this; $rnd = rand(1,9); $a=0; for ($i=0; $i<$rnd; $i++) { $a++ } to further randomize the retry

Re: [PHP] database abstraction layer

2010-02-02 Thread Robert Cummings
Rene Veerman wrote: i haven't had the pleasure yet of writing for sites that generate so many hits/sec that they'd update the max value of any table at exactly the same time. i usually ask for the max value about 2 milliseconds before doing the insert. And if the insert fails, i can auto-retry v

Re: [PHP] database abstraction layer

2010-02-02 Thread Phpster
Good lord that is exacty the same logic applied in our app. It only takes about 100 users to create the issue. Bastien Sent from my iPod On Feb 2, 2010, at 6:05 PM, Rene Veerman wrote: i haven't had the pleasure yet of writing for sites that generate so many hits/sec that they'd update t

Re: [PHP] database abstraction layer

2010-02-02 Thread Phpster
Yep, love those race conditions. We have them all over the app cuz the app ciders don't know shit! Bastien Sent from my iPod On Feb 2, 2010, at 5:46 PM, Ashley Sheridan wrote: On Tue, 2010-02-02 at 23:19 +0100, Rene Veerman wrote: function getMax($table, $field) If I saw this sort

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
On Wed, Feb 3, 2010 at 12:35 AM, Ashley Sheridan wrote: > It's the reason transactions exist, to prevent things happening like this. > When you have two actions where one is dependent on the other, unless you > have a way to tie them together so that they can't be broken, you run the > risk of col

Re: [PHP] database abstraction layer

2010-02-02 Thread Ashley Sheridan
On Wed, 2010-02-03 at 00:31 +0100, Rene Veerman wrote: > On Wed, Feb 3, 2010 at 12:18 AM, Ashley Sheridan > wrote: > > > The problem is where 2 people choose the same instant to perform an > > action on your site that inserts a record into your db. The db engine > > inserts them one after the ot

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
On Wed, Feb 3, 2010 at 12:18 AM, Ashley Sheridan wrote: > The problem is where 2 people choose the same instant to perform an > action on your site that inserts a record into your db. The db engine > inserts them one after the other, and then responds about the max(id) to > your PHP script. Then,

Re: [PHP] database abstraction layer

2010-02-02 Thread Ashley Sheridan
On Wed, 2010-02-03 at 00:21 +0100, Rene Veerman wrote: > the auto_increment sytnax is not uniform across servers, is it? > > On Wed, Feb 3, 2010 at 12:11 AM, Ashley Sheridan > wrote: > > > I saw it happen on a site that was getting only about 3000 hits a day. It > > just takes the right combina

Re: [PHP] database abstraction layer

2010-02-02 Thread Ashley Sheridan
On Wed, 2010-02-03 at 00:17 +0100, Rene Veerman wrote: > and after the sleep(rand(1,3)) it might need a short loop like this; > $rnd = rand(1,9); $a=0; > for ($i=0; $i<$rnd; $i++) { $a++ } > > to further randomize the retry attempt.. > > > On Wed, Feb 3, 2010 at 12:05 AM, Rene Veerman wrot

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
the auto_increment sytnax is not uniform across servers, is it? On Wed, Feb 3, 2010 at 12:11 AM, Ashley Sheridan wrote: > I saw it happen on a site that was getting only about 3000 hits a day. It > just takes the right combination of circumstances and it all goes pear > shaped. You really should

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
eh thats "randomize the timing of the retry attempt".. On Wed, Feb 3, 2010 at 12:17 AM, Rene Veerman wrote: > and after the sleep(rand(1,3)) it might need a short loop like this; > $rnd = rand(1,9); $a=0; > for ($i=0; $i<$rnd; $i++) { $a++ } > > to further randomize the retry attempt.. > >

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
and after the sleep(rand(1,3)) it might need a short loop like this; $rnd = rand(1,9); $a=0; for ($i=0; $i<$rnd; $i++) { $a++ } to further randomize the retry attempt.. On Wed, Feb 3, 2010 at 12:05 AM, Rene Veerman wrote: > i haven't had the pleasure yet of writing for sites that generate

Re: [PHP] database abstraction layer

2010-02-02 Thread Ashley Sheridan
On Wed, 2010-02-03 at 00:05 +0100, Rene Veerman wrote: > i haven't had the pleasure yet of writing for sites that generate so many > hits/sec that > they'd update the max value of any table at exactly the same time. > > i usually ask for the max value about 2 milliseconds before doing the > inser

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
i haven't had the pleasure yet of writing for sites that generate so many hits/sec that they'd update the max value of any table at exactly the same time. i usually ask for the max value about 2 milliseconds before doing the insert. And if the insert fails, i can auto-retry via a wrapper function

Re: [PHP] database abstraction layer

2010-02-02 Thread Ashley Sheridan
On Tue, 2010-02-02 at 23:19 +0100, Rene Veerman wrote: > function getMax($table, $field) If I saw this sort of code I'd be appalled! It's possibly the worst way to get the auto increment value. You won't notice it testing the site out on your own, but all hell will break loose when you start get

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
oh, on using adodb.sf.net and 0-overhead for jumping between mysql and postgresql; keep all your queries to as simple & early-standard sql as possible. the auto_increment incompatibilities can be circumvented with a relatively simple function getMax($table, $field) { in adodb, you'd loop through

Re: [PHP] database abstraction layer

2010-02-02 Thread Paul M Foster
On Tue, Feb 02, 2010 at 01:15:22PM -0800, Daevid Vincent wrote: > > -Original Message- > > From: Lars Nielsen [mailto:l...@mit-web.dk] > > Sent: Tuesday, February 02, 2010 12:24 PM > > To: php-general@lists.php.net > > Subject: [PHP] database abstraction laye

RE: [PHP] database abstraction layer

2010-02-02 Thread Daevid Vincent
> -Original Message- > From: Lars Nielsen [mailto:l...@mit-web.dk] > Sent: Tuesday, February 02, 2010 12:24 PM > To: php-general@lists.php.net > Subject: [PHP] database abstraction layer > > Hi List > > I am trying to make a Database Abstraction Layer so

Re: [PHP] database abstraction layer

2010-02-02 Thread Paul M Foster
On Tue, Feb 02, 2010 at 09:23:47PM +0100, Lars Nielsen wrote: > Hi List > > I am trying to make a Database Abstraction Layer so I can which the DB > of my application between MySQL and Postgresql. I have been looking at > the way phpBB does it, and it seems that it is only then php-functions > wh

Re: [PHP] database abstraction layer

2010-02-02 Thread Rene Veerman
i'm a fan of adodb.sf.net, which i've used with both postgresql and mysql. On Tue, Feb 2, 2010 at 9:23 PM, Lars Nielsen wrote: > Hi List > > I am trying to make a Database Abstraction Layer so I can which the DB > of my application between MySQL and Postgresql. I have been looking at > the way ph

Re: [PHP] database abstraction layer

2010-02-02 Thread Lester Caine
Lars Nielsen wrote: Hi List I am trying to make a Database Abstraction Layer so I can which the DB of my application between MySQL and Postgresql. I have been looking at the way phpBB does it, and it seems that it is only then php-functions which are different. The SQL seems to be the same. Is

Re: [PHP] database abstraction layer

2010-02-02 Thread Michael A. Peters
Lars Nielsen wrote: Hi List I am trying to make a Database Abstraction Layer so I can which the DB of my application between MySQL and Postgresql. I have been looking at the way phpBB does it, and it seems that it is only then php-functions which are different. The SQL seems to be the same. Is

Re: [PHP] database abstraction layer

2010-02-02 Thread James Colannino
Lars Nielsen wrote: Is it save to assume that I can use the same SQL, or should i make some exceptions? Standard SQL should work across all SQL servers with only a few exceptions (for example, MySQL doesn't support full outer joins.) Anything that has to do with server administration, howeve

[PHP] database abstraction layer

2010-02-02 Thread Lars Nielsen
Hi List I am trying to make a Database Abstraction Layer so I can which the DB of my application between MySQL and Postgresql. I have been looking at the way phpBB does it, and it seems that it is only then php-functions which are different. The SQL seems to be the same. Is it save to assume that

[PHP] Re: [PHP-DB] PHP Database Abstraction Layer

2003-02-06 Thread Maxim Maletsky
"Luke Woollard" <[EMAIL PROTECTED]> wrote... : > I once read a great article in the first or second issue of > http://www.phparch.com/ on database abstraction layers. At which point I > used the tutorial as a starting point for creating a very similar structure > I named dbWave. There are only mi

[PHP] PHP Database Abstraction Layer

2003-02-05 Thread Luke Woollard
I once read a great article in the first or second issue of http://www.phparch.com/ on database abstraction layers. At which point I used the tutorial as a starting point for creating a very similar structure I named dbWave. There are only minor differences and a postgresql driver is now included f

RE: [PHP] Database abstraction layer oci

2002-03-11 Thread Andrew Hill
e- > > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > > Sent: Friday, March 08, 2002 5:39 AM > > > To: [EMAIL PROTECTED] > > > Subject: [PHP] Database abstraction layer oci > > > > > > > > > > > > Hi everybody. > &g

Re: [PHP] Database abstraction layer oci

2002-03-09 Thread Thies C. Arntzen
angelism > http://www.openlinksw.com/virtuoso/whatis.htm > OpenLink Virtuoso Internet Data Integration Server > > > -Original Message- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > Sent: Friday, March 08, 2002 5:39 AM > > To: [EMAIL PROTECTED] &

RE: [PHP] Database abstraction layer oci

2002-03-08 Thread Andrew Hill
March 08, 2002 5:39 AM > To: [EMAIL PROTECTED] > Subject: [PHP] Database abstraction layer oci > > > > Hi everybody. > > I would like your opinion on the Database Abstraction Layer you prefer (I > will use it with Oracle 8i) > I know that there is Metabase end Pear

[PHP] Database abstraction layer oci

2002-03-08 Thread DrouetL
Hi everybody. I would like your opinion on the Database Abstraction Layer you prefer (I will use it with Oracle 8i) I know that there is Metabase end Pear DB What's your opinion on both or others ? Laurent Drouet -- PHP General Mailing List (http://www.php.net/) To unsubscribe, visit: htt