Jump to content

Archived

This topic is now archived and is closed to further replies.

jonny5

PHP MYSQL page requests

Recommended Posts

I can't seem to find any good documented stuff about this:

When a user calls a php page, and another user calls the same
can this result in database inconsistency?

which part of query's are executed atomically:
none?
just 1 query?
1 php page?

please help me on this one?

thanks!!!

Jonny

;)

Share this post


Link to post
Share on other sites
You can use [url=http://dev.mysql.com/doc/refman/5.0/en/transactional-commands.html]transactional and locking statements[/url] if you need atomicity over multiple SQL statements (a transaction).  Otherwise, for a single query, AFAIK, queries are "atomic" by nature.

Of course, I'm refering to SQL commands which change a table in some way (UPDATE, INSERT, or DELETE).  SELECTs would be exempt.

MySQL (I'm assuming MySQL since you're posting in this forum, otherwise PostGRE, Oracle, whatever) handles the database functions.  If a PHP with a table-altering SQL query is requested once, then immediately requested by another user, the inital SQL is carried out, then the second request "sees" the updated table.

Does that answer your question?  There's plenty of information out there on database concurrency, atomicity, transactions, etc.  Much of it is database developer theory and is not of the database user's concern.

Share this post


Link to post
Share on other sites
Thank you for ur quick response ;)

and what about this:

<?php
//call query to add 1 to some field
//call query to substract 1 to same field
?>

User 1 requests
User 2 requests

can this happen:
u1 add
u2 add
u1 sub
u2sub

or

u1 add
u2 add
u2sub
u1 sub

this can cause inconsistance if you are not using increment or decrement but getting values, changing them and then putting them
so are those queries in 1 php page 1 thing? cause i'm still not getting that part :)

thanks!

Share this post


Link to post
Share on other sites
I'm worried about the same thing, but was one step behind you in that I was getting/putting the values rather then adding and subtracting them. But your adding/subtracting should work fine, because it doesn't matter what order you do the addition and subtraction.

Share this post


Link to post
Share on other sites
Simply assume that anyone can touch the tables at any time, irrespective of the order of the statements across multiple instances of the same script.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.