MySQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: MySQLTypes.php,v 1.1 2004/03/25 22:59:40 micha 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 // 00024 // STATUS: 00025 // - ported: y 00026 // - compiled: y 00027 // - tested: n 00028 // 00029 00030 require_once 'creole/CreoleTypes.php'; 00031 00039 class MySQLTypes extends CreoleTypes 00040 { 00042 var $typeMap = null; 00044 var $reverseMap = null; 00045 00052 function getType($nativeType) 00053 { 00054 $self =& MySQLTypes::getInstance(); 00055 00056 $t = strtolower($nativeType); 00057 if (isset($self->typeMap[$t])) { 00058 return $self->typeMap[$t]; 00059 } 00060 else { 00061 return CreoleTypes::OTHER(); 00062 } 00063 } 00064 00073 function getNativeType($creoleType) 00074 { 00075 $self =& MySQLTypes::getInstance(); 00076 00077 if ($self->reverseMap === null) { 00078 $self->reverseMap = array_flip($self->typeMap); 00079 } 00080 00081 return @$self->reverseMap[$creoleType]; 00082 } 00083 00084 /* 00085 * @private 00086 */ 00087 function & getInstance() 00088 { 00089 static $instance; 00090 00091 if ($instance === null) 00092 { 00093 $instance = new MySQLTypes(); 00094 $instance->typeMap = array 00095 ( 00096 'tinyint' => CreoleTypes::TINYINT(), 00097 'smallint' => CreoleTypes::SMALLINT(), 00098 'mediumint' => CreoleTypes::SMALLINT(), 00099 'int' => CreoleTypes::INTEGER(), 00100 'integer' => CreoleTypes::INTEGER(), 00101 'bigint' => CreoleTypes::BIGINT(), 00102 'int24' => CreoleTypes::BIGINT(), 00103 'real' => CreoleTypes::REAL(), 00104 'float' => CreoleTypes::FLOAT(), 00105 'decimal' => CreoleTypes::DECIMAL(), 00106 'numeric' => CreoleTypes::NUMERIC(), 00107 'double' => CreoleTypes::DOUBLE(), 00108 'char' => CreoleTypes::CHAR(), 00109 'varchar' => CreoleTypes::VARCHAR(), 00110 'date' => CreoleTypes::DATE(), 00111 'time' => CreoleTypes::TIME(), 00112 'year' => CreoleTypes::YEAR(), 00113 'datetime' => CreoleTypes::TIMESTAMP(), 00114 'timestamp' => CreoleTypes::TIMESTAMP(), 00115 'tinyblob' => CreoleTypes::BINARY(), 00116 'blob' => CreoleTypes::VARBINARY(), 00117 'mediumblob' => CreoleTypes::VARBINARY(), 00118 'longblob' => CreoleTypes::VARBINARY(), 00119 'tinytext' => CreoleTypes::VARCHAR(), 00120 'mediumtext' => CreoleTypes::LONGVARCHAR(), 00121 'text' => CreoleTypes::LONGVARCHAR(), 00122 'enum' => CreoleTypes::CHAR(), 00123 'set' => CreoleTypes::CHAR() 00124 ); 00125 } 00126 00127 return $instance; 00128 } 00129 00130 }

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


Copyright © 2004 Hans Lellelid  
Creole[php4] CVS