PHP database abstraction layer
BOINC's PHP code uses the following classes for DB access:
- Class
DbConn
(html/inc/db_conn.inc) - Represents a connection to a particular database (not just to a server). The class functions prepend the database name to table names in queries, so there is no confusion if you use multiple databases at once. All MySQL-specific PHP functions (
mysql_query()
, etc.) are called only from this class.
- Class
BoincUser
,BoincTeam
, etc. (html/inc/boinc_db.inc) - Each class represents a particular table in the BOINC database, and provides functions for selecting, inserting, updating and enumerating rows. These functions take care of initializing the
DbConn
layer - you don't have to do this directly.
All PHP code should use these classes exclusively for accessing the DB.
Much of the PHP code conforms to this rule. However, some of the code has not been converted yet. This is divided into:
- Code with direct
mysql_*()
calls, and with calls todb_init()
. - The message-board code (
forum_*
), which has a separate and more heavyweight abstraction layer. Eventually this code should be converted to use the new abstraction layer.
Last modified 12 years ago
Last modified on Feb 13, 2013, 9:05:17 AM