⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 common.php

📁 This is the script which used on 10minutemail.com for temporary email.
💻 PHP
📖 第 1 页 / 共 2 页
字号:
     *       [table] => tblFoo     *       [name] => fldId     *       [type] => int     *       [len] => 11     *       [flags] => primary_key not_null     *   )     *   [1] => Array (     *       [table] => tblFoo     *       [name] => fldPhone     *       [type] => string     *       [len] => 20     *       [flags] =>     *   )     *   [2] => Array (     *       [table] => tblBar     *       [name] => fldId     *       [type] => int     *       [len] => 11     *       [flags] => primary_key not_null     *   )     *   </pre>     *     * </li><li>     *     * <kbd>MDB2_TABLEINFO_ORDER</kbd>     *     *   <p>In addition to the information found in the default output,     *   a notation of the number of columns is provided by the     *   <samp>num_fields</samp> element while the <samp>order</samp>     *   element provides an array with the column names as the keys and     *   their location index number (corresponding to the keys in the     *   the default output) as the values.</p>     *     *   <p>If a result set has identical field names, the last one is     *   used.</p>     *     *   <pre>     *   [num_fields] => 3     *   [order] => Array (     *       [fldId] => 2     *       [fldTrans] => 1     *   )     *   </pre>     *     * </li><li>     *     * <kbd>MDB2_TABLEINFO_ORDERTABLE</kbd>     *     *   <p>Similar to <kbd>MDB2_TABLEINFO_ORDER</kbd> but adds more     *   dimensions to the array in which the table names are keys and     *   the field names are sub-keys.  This is helpful for queries that     *   join tables which have identical field names.</p>     *     *   <pre>     *   [num_fields] => 3     *   [ordertable] => Array (     *       [tblFoo] => Array (     *           [fldId] => 0     *           [fldPhone] => 1     *       )     *       [tblBar] => Array (     *           [fldId] => 2     *       )     *   )     *   </pre>     *     * </li>     * </ul>     *     * The <samp>flags</samp> element contains a space separated list     * of extra information about the field.  This data is inconsistent     * between DBMS's due to the way each DBMS works.     *   + <samp>primary_key</samp>     *   + <samp>unique_key</samp>     *   + <samp>multiple_key</samp>     *   + <samp>not_null</samp>     *     * Most DBMS's only provide the <samp>table</samp> and <samp>flags</samp>     * elements if <var>$result</var> is a table name.  The following DBMS's     * provide full information from queries:     *   + fbsql     *   + mysql     *     * If the 'portability' option has <samp>MDB2_PORTABILITY_FIX_CASE</samp>     * turned on, the names of tables and fields will be lower or upper cased.     *     * @param object|string  $result  MDB2_result object from a query or a     *                                string containing the name of a table.     *                                While this also accepts a query result     *                                resource identifier, this behavior is     *                                deprecated.     * @param int  $mode   either unused or one of the tableInfo modes:     *                     <kbd>MDB2_TABLEINFO_ORDERTABLE</kbd>,     *                     <kbd>MDB2_TABLEINFO_ORDER</kbd> or     *                     <kbd>MDB2_TABLEINFO_FULL</kbd> (which does both).     *                     These are bitwise, so the first two can be     *                     combined using <kbd>|</kbd>.     *     * @return array  an associative array with the information requested.     *                 A MDB2_Error object on failure.     *     * @see MDB2_Driver_Common::setOption()     */    function tableInfo($result, $mode = null)    {        $db =& $this->getDBInstance();        if (PEAR::isError($db)) {            return $db;        }        if (!is_string($result)) {            return $db->raiseError(MDB2_ERROR_UNSUPPORTED, null, null,                'method not implemented', __FUNCTION__);        }        $db->loadModule('Manager', null, true);        $fields = $db->manager->listTableFields($result);        if (PEAR::isError($fields)) {            return $fields;        }        $flags = array();        $idxname_format = $db->getOption('idxname_format');        $db->setOption('idxname_format', '%s');        $indexes = $db->manager->listTableIndexes($result);        if (PEAR::isError($indexes)) {            $db->setOption('idxname_format', $idxname_format);            return $indexes;        }        foreach ($indexes as $index) {            $definition = $this->getTableIndexDefinition($result, $index);            if (PEAR::isError($definition)) {                $db->setOption('idxname_format', $idxname_format);                return $definition;            }            if (count($definition['fields']) > 1) {                foreach ($definition['fields'] as $field => $sort) {                    $flags[$field] = 'multiple_key';                }            }        }        $constraints = $db->manager->listTableConstraints($result);        if (PEAR::isError($constraints)) {            return $constraints;        }        foreach ($constraints as $constraint) {            $definition = $this->getTableConstraintDefinition($result, $constraint);            if (PEAR::isError($definition)) {                $db->setOption('idxname_format', $idxname_format);                return $definition;            }            $flag = !empty($definition['primary'])                ? 'primary_key' : (!empty($definition['unique'])                    ? 'unique_key' : false);            if ($flag) {                foreach ($definition['fields'] as $field => $sort) {                    if (empty($flags[$field]) || $flags[$field] != 'primary_key') {                        $flags[$field] = $flag;                    }                }            }        }        if ($mode) {            $res['num_fields'] = count($fields);        }        foreach ($fields as $i => $field) {            $definition = $this->getTableFieldDefinition($result, $field);            if (PEAR::isError($definition)) {                $db->setOption('idxname_format', $idxname_format);                return $definition;            }            $res[$i] = $definition[0];            $res[$i]['name'] = $field;            $res[$i]['table'] = $result;            $res[$i]['type'] = preg_replace('/^([a-z]+).*$/i', '\\1', trim($definition[0]['nativetype']));            // 'primary_key', 'unique_key', 'multiple_key'            $res[$i]['flags'] = empty($flags[$field]) ? '' : $flags[$field];            // not_null', 'unsigned', 'auto_increment', 'default_[rawencodedvalue]'            if (!empty($res[$i]['notnull'])) {                $res[$i]['flags'].= ' not_null';            }            if (!empty($res[$i]['unsigned'])) {                $res[$i]['flags'].= ' unsigned';            }            if (!empty($res[$i]['auto_increment'])) {                $res[$i]['flags'].= ' autoincrement';            }            if (!empty($res[$i]['default'])) {                $res[$i]['flags'].= ' default_'.rawurlencode($res[$i]['default']);            }            if ($mode & MDB2_TABLEINFO_ORDER) {                $res['order'][$res[$i]['name']] = $i;            }            if ($mode & MDB2_TABLEINFO_ORDERTABLE) {                $res['ordertable'][$res[$i]['table']][$res[$i]['name']] = $i;            }        }        $db->setOption('idxname_format', $idxname_format);        return $res;    }}?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -