database collision?
| From: | MMVZSLU) | Date: | Tue, 09 Jan 2001 10:45:58 +0000 |
| Subject: | database collision? | ||
| Groups: | php.db | ||
| Request: | Send a blank email to php-db+get-5734@lists.php.net to get a copy of this message | ||
> hi there. i am developing a database app to manage dynamic sites. in a
> nutshell, i have an item table (to store all the content) and a permission
> table (to register who's allowed to edit/view specific items).
>
> now, when creating a new item, i do the following things:
>
> - determine a new permission id (which is the permission table primary
> key, kinda "SELECT MAX(id) FROM permission_table" and then increase the
> result by one. i don't use AUTO_INCREMENT columns on purpose.)
> - create an entry in the permission table
> - create an entry in the item table, including the permission id as
> relational attribute
>
> now, my question is: since there may be multiple php processes running, if
> two users simultaneously create an item and post it at the same moment -
> couldn't it happen that the process of user#1 has already determined the
> permission id, while user#2 determines the SAME id, creates the entry and
> user#1 will get an error because the item id was already taken in the
> meantime? what can i do to avoid such security/integrity holes?
>
> thanks for listening - sam