====== metaForeignKeys ====== ~~NOTOC~~ == Syntax == mixed metaForeignKeys( string $tableName, optional string $owner='', optional bool $upperCase=false, optional bool $associative=false ) ===== Description ===== The function ''metaForeignKeys()'' returns an array of the foreign keys associated with a specific table. If there are no foreign keys then the function returns false. ===== Optional Parameters ===== ==== $owner ==== If specified, only returns foreign keys associated with a table owned by that name. Some drivers discard this parameter ==== $upper ==== if specified, the table and columns are returned in uppercase. Default is lowercase. ==== $associative==== If specified, returns the result in associative mode. If ADODB_FETCH_MODE is already associative, then this parameter is discarded. ===== Return Value ===== The method returns an array of data: * The main key represents the foreign table that the key associated with. * The values of the key are either * a key=>value pair, the key being the column name of the source table and the value being the column name of the foreign table if the request is //associative//, or * a numeric key with value being the same data represented as ''local_column=foreign_column''. ===== Explanation ===== A table **//parent_table//** has a foreign key that references **//foreign_table//**. **//parent_table//** has 2 columns **//parent_id//** and **//parent_type//**. These 2 columns reference corresponding columns in **//foreign_table//**, **//foreign_id//** and **//foreign_type//**. ''metaForeignKeys('parent_table')'' presents this data in the following way: ==== Associative Mode ==== [ ['foreign_table'] [ ['parent_id'] => 'foreign_id', ['parent_type'] => 'foreign_type' ] ] ==== Numeric Mode ==== [ ['foreign_table'] => [ [0] => 'parent_id=foreign_id', [1] => 'parent_type=foreign_type' ] ] ===== Usage ===== /* * Connection to MySql Employees Sample database */ $db->setFetchMode(ADODB_FETCH_NUM); $p = $db->metaForeignKeys('dept_emp'); print_r($p); /* * prints Array ( [employees] => Array ( [0] => emp_no=emp_no ) [departments] => Array ( [0] => dept_no=dept_no ) ) */ ==== Same Code In Associative Mode ==== $db->setFetchMode(ADODB_FETCH_ASSOC); $p = $db->metaForeignKeys('dept_emp'); print_r($p); /* * prints Array ( [employees] => Array ( [emp_no]=>emp_no ) [departments] => Array ( [dept_no]=>dept_no ) ) */