= PHP database abstraction layer = BOINC's PHP code uses the following classes for DB access: Class {{{DbConn}}} ([source:boinc/html/inc/db_conn.inc 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. ([source:boinc/html/inc/boinc_db.inc 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 to `db_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.