Admidio API
  • Package
  • Class
  • Tree
  • Deprecated
  • Todo

Packages

  • com
    • tecnick
      • tcpdf
  • None
  • PHPMailer
    • easypeasyics
  • PHPWavUtils
  • Securimage
    • classes

Classes

  • AutoLogin
  • Component
  • ComponentUpdate
  • ConditionParser
  • Database
  • DateTimeExtended
  • Email
  • Folder
  • FormValidation
  • FunctionClass
  • Htaccess
  • HtmlDiv
  • HtmlElement
  • HtmlForm
  • HtmlFormBasic
  • HtmlFormInstallation
  • HtmlList
  • HtmlNavbar
  • HtmlPage
  • HtmlTable
  • HtmlTableBasic
  • Image
  • Inventory
  • InventoryFields
  • Language
  • LanguageData
  • ListConfiguration
  • Menu
  • Message
  • ModuleAnnouncements
  • ModuleDates
  • ModuleLists
  • ModuleMenu
  • ModuleMessages
  • Modules
  • ModuleWeblinks
  • MyFiles
  • Navigation
  • ntlm_sasl_client_class
  • Organization
  • Participants
  • PasswordHash
  • PasswordHashing
  • ProfileFields
  • RoleDependency
  • RolesRights
  • RSSfeed
  • Session
  • SystemMail
  • TableAccess
  • TableAnnouncement
  • TableCategory
  • TableDate
  • TableFile
  • TableFolder
  • TableGuestbook
  • TableGuestbookComment
  • TableInventory
  • TableInventoryField
  • TableLists
  • TableMembers
  • TableMessage
  • TablePhotos
  • TableRoles
  • TableRooms
  • TableText
  • TableUserField
  • TableUsers
  • TableWeblink
  • UploadHandlerDownload
  • UploadHandlerPhoto
  • User
  • UserRegistration

Exceptions

  • AdmException
  • WavFileException
  • WavFormatException

Functions

  • admFuncAutoload
  • admFuncGeneratePagination
  • admFuncGetBytesFromSize
  • admFuncGetDirectoryEntries
  • admFuncMaxUploadSize
  • admFuncProcessableImageSize
  • admFuncShowCreateChangeInfoById
  • admFuncShowCreateChangeInfoByName
  • admFuncVariableIsValid
  • admReadTemplateFile
  • admStrIsValidFileName
  • admStrStripTagsSpecial
  • admStrToLower
  • admStrToUpper
  • bzip2Version
  • checkDatabaseVersion
  • checkPhpVersion
  • EmailAttachment
  • FileSizeNiceDisplay
  • FormattedTimeRemaining
  • FunctionIsDisabled
  • getFormerRolesFromDatabase
  • getFutureRolesFromDatabase
  • getmicrotime
  • getRoleMemberships
  • getRolesFromDatabase
  • gzipVersion
  • hasRole
  • hl_attrval
  • hl_bal
  • hl_cmtcd
  • hl_ent
  • hl_prot
  • hl_regex
  • hl_spec
  • hl_tag
  • hl_tag2
  • hl_tidy
  • hl_version
  • htmLawed
  • HTMLFilter
  • isGroupLeader
  • isMember
  • kses
  • kses_hook
  • MySQLdumpVersion
  • OutputInformation
  • SafeExec
  • showNotice
  • strAddSlashesDeep
  • strNextLetter
  • strStripSlashesDeep
  • strStripTags
  • strValidCharacters
  • tln_body2div
  • tln_casenormalize
  • tln_deent
  • tln_defang
  • tln_findnxreg
  • tln_findnxstr
  • tln_fixatts
  • tln_fixstyle
  • tln_fixurl
  • tln_getnxtag
  • tln_sanitize
  • tln_skipspace
  • tln_tagprint
  • tln_unspace
  • version_compare_replacement
  • version_compare_replacement_sub

Class TableAccess

Direct known subclasses

AutoLogin, Component, TableGuestbook, TableGuestbookComment, TableInventory, TableInventoryField, TableLists, TableMembers, TableMessage, TablePhotos, TableRoles, TableRooms, Organization, TableText, TableUserField, TableWeblink, User, RolesRights, Session, TableAnnouncement, TableCategory, TableDate, TableFile, TableFolder

Indirect known subclasses

ComponentUpdate, Inventory, ListConfiguration, TableUsers, UserRegistration

Copyright: 2004-2016 The Admidio Team
License: GNU General Public License v2.0 only **********************************************************************************************
Brief:

Controls read and write access to datbase tables

This class should help you to read and write records of database tables. You create an object for a special table and than you are able to read a special record, manipulate him and write him back. Also new records can be created with this class. The advantage of this class is that you are independent from SQL. You can use @c getValue, @c setValue, @c readData and @c save to handle the record.


Class: TableAccess
Code:

// create an object for table adm_roles of role 4711 $roleId = 4177; $role = new TableAccess($gDb, TBL_ROLES, 'rol', $roleId);

// read max. Members and add 1 to the count $maxMembers = $role->getValue('rol_max_members'); $maxMembers = $maxMembers + 1; $role->setValue('rol_max_members', $maxMembers); $role->save(); @endcode


Par: Examples
Located at tableaccess.php

Methods summary

public
# __construct( Database & $database, string $tableName, string $columnPrefix, string|integer $id = '' )

Constructor that will create an object of a recordset of the specified table. If the id is set than this recordset will be loaded.

Constructor that will create an object of a recordset of the specified table. If the id is set than this recordset will be loaded.

Parameters

$database
Object of the class Database. This should be the default global object @b $gDb.
$tableName
The name of the database table. Because of specific praefixes this should be the define value e.g. @b TBL_USERS
$columnPrefix
The prefix of each column of that table. E.g. for table @b adm_roles this is @b rol
$id
The id of the recordset that should be loaded. If id isn't set than an empty object of the table is created.
public string[]
# __sleep( )

Called on serialization of this object. The database object could not be serialized and should be ignored.

Called on serialization of this object. The database object could not be serialized and should be ignored.

Returns

string[]
Returns all class variables that should be serialized.
public
# clear( )

Initializes all class parameters and deletes all read data. Also the database structure of the associated table will be read and stored in the arrays @b dbColumns and @b columnsInfos

Initializes all class parameters and deletes all read data. Also the database structure of the associated table will be read and stored in the arrays @b dbColumns and @b columnsInfos

protected
# connectAdditionalTable( string $table, string $columnNameAdditionalTable, string $columnNameClassTable )

Adds a table with the connected fields to a member array. This table will be add to the select statement if data is read and the connected record is avaiable in this class. The connected table must have a foreign key in the class table.

Adds a table with the connected fields to a member array. This table will be add to the select statement if data is read and the connected record is avaiable in this class. The connected table must have a foreign key in the class table.

Parameters

$table
Database table name that should be connected. This can be the define of the table.
$columnNameAdditionalTable
Name of the column in the connected table that has the foreign key to the class table
$columnNameClassTable
Name of the column in the class table that has the foreign key to the connected table

Code

// Constructor of adm_dates object where the category (calendar) is connected public function __construct(&$db, $dat_id = 0) { $this->connectAdditionalTable(TBL_CATEGORIES, 'cat_id', 'dat_cat_id'); parent::__construct($db, TBL_DATES, 'dat', $dat_id); } @endcode


Par

Examples
public integer
# countAllRecords( )

Reads the number of all records of this table

Reads the number of all records of this table

Returns

integer
Number of records of this table
public true
# delete( )

Deletes the selected record of the table and initializes the class

Deletes the selected record of the table and initializes the class

Returns

true
Returns @b true if no error occurred
public mixed
# getValue( string $columnName, string $format = '' )

Get the value of a column of the database table. If the value was manipulated before with @b setValue than the manipulated value is returned.

Get the value of a column of the database table. If the value was manipulated before with @b setValue than the manipulated value is returned.

Parameters

$columnName
The name of the database column whose value should be read
$format

For date or timestamp columns the format should be the date/time format e.g. @b d.m.Y = '02.04.2011'. @n For text columns the format can be @b database that would return the original database value without any transformations

Returns

mixed

Returns the value of the database column. If the value was manipulated before with @b setValue than the manipulated value is returned.

See

TableAccess#setValue
public boolean
# hasColumnsValueChanged( )

If a column of the row in this object has changed throw setValue then this method will return @b true otherwise @false

If a column of the row in this object has changed throw setValue then this method will return @b true otherwise @false

Returns

boolean

Returns @b true if at least one value of one column has changed after the recordset was loaded otherwise @b false

public boolean
# isNewRecord( )

If the recordset is new and wasn't read from database or was not stored in database then this method will return true otherwise false

If the recordset is new and wasn't read from database or was not stored in database then this method will return true otherwise false

Returns

boolean
Returns @b true if record is not stored in database
protected boolean
# readData( string $sqlWhereCondition )

Reads a record out of the table in database selected by the conditions of the param @b $sqlWhereCondition out of the table. If the sql will find more than one record the method returns @b false. Per default all columns of the default table will be read and stored in the object.

Reads a record out of the table in database selected by the conditions of the param @b $sqlWhereCondition out of the table. If the sql will find more than one record the method returns @b false. Per default all columns of the default table will be read and stored in the object.

Parameters

$sqlWhereCondition
Conditions for the table to select one record

Returns

boolean
Returns @b true if one record is found

See

TableAccess#readDataById
TableAccess#readDataByColumns
public boolean
# readDataById( integer|string $id )

Reads a record out of the table in database selected by the unique id column in the table. Per default all columns of the default table will be read and stored in the object.

Reads a record out of the table in database selected by the unique id column in the table. Per default all columns of the default table will be read and stored in the object.

Parameters

$id
Unique id of id column of the table.

Returns

boolean
Returns @b true if one record is found

See

TableAccess#readData
TableAccess#readDataByColumns
public boolean
# readDataByColumns( array $columnArray )

Reads a record out of the table in database selected by different columns in the table. The columns are commited with an array where every element index is the column name and the value is the column value. The columns and values must be selected so that they identify only one record. If the sql will find more than one record the method returns @b false. Per default all columns of the default table will be read and stored in the object.

Reads a record out of the table in database selected by different columns in the table. The columns are commited with an array where every element index is the column name and the value is the column value. The columns and values must be selected so that they identify only one record. If the sql will find more than one record the method returns @b false. Per default all columns of the default table will be read and stored in the object.

Parameters

$columnArray
An array where every element index is the column name and the value is the column value

Returns

boolean
Returns @b true if one record is found

See

TableAccess#readData
TableAccess#readDataById

Code

// reads data not be mem_id but with combination of role and user id $member = new TableAccess($gDb, TBL_MEMBERS, 'rol'); $member->readDataByColumn(array('mem_rol_id' => $roleId, 'mem_usr_id' => $userId)); @endcode


Par

Examples
public boolean
# save( boolean $updateFingerPrint = true )

Save all changed columns of the recordset in table of database. Therefore the class remembers if it's a new record or if only an update is necessary. The update statement will only update the changed columns. If the table has columns for creator or editor than these column with their timestamp will be updated.

Save all changed columns of the recordset in table of database. Therefore the class remembers if it's a new record or if only an update is necessary. The update statement will only update the changed columns. If the table has columns for creator or editor than these column with their timestamp will be updated.

Parameters

$updateFingerPrint

Default @b true. Will update the creator or editor of the recordset if table has columns like @b usr_id_create or @b usr_id_changed

Returns

boolean
If an update or insert into the database was done then return true, otherwise false.
public
# setArray( array $fieldArray )

The method requires an array with all fields of one recordset of the table object. These fields will be add to the object as if you read one record with @b readDataById but without a separate SQL. This method is useful if you have several recordsets of the table and want to use an table object for each recordset. So you don't have to do an separate sql read for each record. This is a performant way to fill the object with the necessary data.

The method requires an array with all fields of one recordset of the table object. These fields will be add to the object as if you read one record with @b readDataById but without a separate SQL. This method is useful if you have several recordsets of the table and want to use an table object for each recordset. So you don't have to do an separate sql read for each record. This is a performant way to fill the object with the necessary data.

Parameters

$fieldArray

An array with all fields and their values of the table. If the object has more connected tables than you should add the fields of these tables, too.

Code

// read all announcements with their categories $sql = 'SELECT * FROM adm_announcements, adm_categories WHERE ann_cat_id = cat_id'; $announcementsStatement = $gDb->query($sql); $announcement = new TableAnnouncements($gDb);

while ($row = $announcementsStatement->fetch()) { // add each recordset to an object without a separate sql within the object $announcement->clear(); $announcement->setArray($row); ... } @endcode


Par

Examples
public
# setDatabase( Database & $database )

Set the database object for communication with the database of this class.

Set the database object for communication with the database of this class.

Parameters

$database
An object of the class Database. This should be the global $gDb object.
public boolean
# setValue( string $columnName, mixed $newValue, boolean $checkValue = true )

Set a new value for a column of the database table. The value is only saved in the object. You must call the method @b save to store the new value to the database. If the unique key column is set to 0 than this record will be a new record and all other columns are marked as changed.

Set a new value for a column of the database table. The value is only saved in the object. You must call the method @b save to store the new value to the database. If the unique key column is set to 0 than this record will be a new record and all other columns are marked as changed.

Parameters

$columnName
The name of the database column whose value should get a new value
$newValue
The new value that should be stored in the database field
$checkValue
The value will be checked if it's valid. If set to @b false than the value will not be checked.

Returns

boolean
Returns @b true if the value is stored in the current object and @b false if a check failed

See

TableAccess#getValue

Properties summary

protected $additionalTables
#
protected $tableName
#
protected $columnPrefix
#
protected $keyColumnName
#
protected $db
#
protected $new_record
#
protected $columnsValueChanged
#
public array $dbColumns
# array()
public array $columnsInfos
# array()
Admidio API API documentation generated by ApiGen