[UPHPU] Using a Database for Object Storage (Sad Times)

Walt Haas haas at xmission.com
Wed Jul 1 08:28:46 MDT 2009


You can't really protect from concurrent updates at the PHP level.  This 
problem is normally solved by using the MySQL two-phase commit 
mechanism: acquire all the data needed for the update, start a MySQL 
transaction, update the DB, then commit the update.  See

http://dev.mysql.com/doc/refman/5.0/en/sql-syntax-transactions.html

-- Walt

Kirk Ouimet wrote:
> Hi List,
> 
>  
> 
> I am currently storing an object in a MySQL database. The object is
> continually being updated by many (possibly simultaneous) requests. Workflow
> looks something like this:
> 
>  
> 
> 1.       Data comes in from one of many sources
> 
> 2.       PHP reads the object from the database
> 
> 3.       PHP adds data to the object
> 
> 4.       PHP writes the object back to the database
> 
>  
> 
> I think I'm running into a concurrency issue where I have record of new data
> being received, but the database object does not reflect the new data. I
> feel like I need to make the object a mutex but I have no idea how to go
> about doing that with PHP. Can anyone provide alternative designs that will
> be a little more robust and handle concurrency?


More information about the UPHPU mailing list