ADOdb

Database Abstraction Layer for PHP

User Tools

Site Tools


v5:dictionary:metaforeignkeys

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dictionary:metaforeignkeys [2015/08/12 02:05] – created mnewnhamv5:dictionary:metaforeignkeys [2026/02/26 00:40] (current) – [Return Value] dregad
Line 5: Line 5:
     mixed metaForeignKeys(     mixed metaForeignKeys(
         string $tableName,         string $tableName,
-        optional string $owner=false,+        optional string $owner='',
         optional bool $upperCase=false,         optional bool $upperCase=false,
         optional bool $associative=false         optional bool $associative=false
Line 14: Line 14:
 ===== Optional Parameters ===== ===== Optional Parameters =====
 ==== $owner ==== ==== $owner ====
-If specified, only returns foreign keys associated with a table owned by that name.+If specified, only returns foreign keys associated with a table owned by that name. Some drivers discard this parameter
 ==== $upper ==== ==== $upper ====
-if specified, only matches the table with the uppercase name+if specified, the table and columns are returned in uppercase. Default is lowercase.
 ==== $associative==== ==== $associative====
-If specified, returns the result in associative mode. If ADODB_FETCH_MODE is already associative, then this parameter is discarded+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 ====  
 +<code php> 
 +
 +    ['foreign_table'] [ 
 +        ['parent_id'] => 'foreign_id', 
 +        ['parent_type'] => 'foreign_type' 
 +    ] 
 +
 +</code> 
 +==== Numeric Mode ==== 
 +<code php> 
 +
 +    ['foreign_table'] => [ 
 +        [0] => 'parent_id=foreign_id', 
 +        [1] => 'parent_type=foreign_type' 
 +    ] 
 +
 +</code>
 ===== Usage ===== ===== Usage =====
-<WRAP todo+<code php
-Add Example of this +/* 
-</WRAP>+ * 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 
 +        ) 
 + 
 +
 +*/ 
 +</code> 
 +==== Same Code In Associative Mode ==== 
 +<code php> 
 +$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 
 +        ) 
 + 
 +
 +*/ 
 +</code>
  
v5/dictionary/metaforeignkeys.1439337906.txt.gz · Last modified: (external edit)