MySQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: MySQLTypes.php,v 1.7 2004/03/20 04:16:49 hlellelid Exp $ 00005 * 00006 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00007 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00008 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00009 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00010 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00011 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00012 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00013 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00014 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00015 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00016 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00017 * 00018 * This software consists of voluntary contributions made by many individuals 00019 * and is licensed under the LGPL. For more information please see 00020 * <http://creole.phpdb.org>. 00021 */ 00022 00023 require_once 'creole/CreoleTypes.php'; 00024 00032 class MySQLTypes extends CreoleTypes { 00033 00035 private static $typeMap = array( 00036 'tinyint' => CreoleTypes::TINYINT, 00037 'smallint' => CreoleTypes::SMALLINT, 00038 'mediumint' => CreoleTypes::SMALLINT, 00039 'int' => CreoleTypes::INTEGER, 00040 'integer' => CreoleTypes::INTEGER, 00041 'bigint' => CreoleTypes::BIGINT, 00042 'int24' => CreoleTypes::BIGINT, 00043 'real' => CreoleTypes::REAL, 00044 'float' => CreoleTypes::FLOAT, 00045 'decimal' => CreoleTypes::DECIMAL, 00046 'numeric' => CreoleTypes::NUMERIC, 00047 'double' => CreoleTypes::DOUBLE, 00048 'char' => CreoleTypes::CHAR, 00049 'varchar' => CreoleTypes::VARCHAR, 00050 'date' => CreoleTypes::DATE, 00051 'time' => CreoleTypes::TIME, 00052 'year' => CreoleTypes::YEAR, 00053 'datetime' => CreoleTypes::TIMESTAMP, 00054 'timestamp' => CreoleTypes::TIMESTAMP, 00055 'tinyblob' => CreoleTypes::BINARY, 00056 'blob' => CreoleTypes::VARBINARY, 00057 'mediumblob' => CreoleTypes::VARBINARY, 00058 'longblob' => CreoleTypes::VARBINARY, 00059 'tinytext' => CreoleTypes::VARCHAR, 00060 'mediumtext' => CreoleTypes::LONGVARCHAR, 00061 'text' => CreoleTypes::LONGVARCHAR, 00062 'enum' => CreoleTypes::CHAR, 00063 'set' => CreoleTypes::CHAR, 00064 ); 00065 00067 private static $reverseMap = null; 00068 00075 public static function getType($nativeType) 00076 { 00077 $t = strtolower($nativeType); 00078 if (isset(self::$typeMap[$t])) { 00079 return self::$typeMap[$t]; 00080 } else { 00081 return CreoleTypes::OTHER; 00082 } 00083 } 00084 00093 public static function getNativeType($creoleType) 00094 { 00095 if (self::$reverseMap === null) { 00096 self::$reverseMap = array_flip(self::$typeMap); 00097 } 00098 return @self::$reverseMap[$creoleType]; 00099 } 00100 00101 }

This file is part of the Creole[php5] library.


Copyright © 2004 Hans Lellelid  
Creole[php5] CVS