From dc3bf922d9715bfd1b2105be04a9aabc84a1d7d4 Mon Sep 17 00:00:00 2001 From: wei <> Date: Thu, 12 Apr 2007 08:05:03 +0000 Subject: Refactor and add TTableGateway, System.Data.Common, System.Data.DataGateway --- framework/Data/Common/Mysql/TMysqlTableColumn.php | 69 +++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 framework/Data/Common/Mysql/TMysqlTableColumn.php (limited to 'framework/Data/Common/Mysql/TMysqlTableColumn.php') diff --git a/framework/Data/Common/Mysql/TMysqlTableColumn.php b/framework/Data/Common/Mysql/TMysqlTableColumn.php new file mode 100644 index 00000000..0f013acd --- /dev/null +++ b/framework/Data/Common/Mysql/TMysqlTableColumn.php @@ -0,0 +1,69 @@ + + * @link http://www.pradosoft.com/ + * @copyright Copyright © 2005-2007 PradoSoft + * @license http://www.pradosoft.com/license/ + * @version $Id$ + * @package System.Data.Common.Mysql + */ + +/** + * Load common TDbTableCommon class. + */ +Prado::using('System.Data.Common.TDbTableColumn'); + +/** + * Describes the column metadata of the schema for a Mysql database table. + * + * @author Wei Zhuo + * @version $Id$ + * @package System.Data.Common.Mysql + * @since 3.1 + */ +class TMysqlTableColumn extends TDbTableColumn +{ + /** + * @return boolean true if column will auto-increment when the column value is inserted as null. + */ + public function getAutoIncrement() + { + return $this->getInfo('AutoIncrement', false); + } + + /** + * @return boolean true if auto increment is true. + */ + public function getHasSequence() + { + return $this->getAutoIncrement(); + } + + public function getDbTypeValues() + { + return $this->getInfo('DbTypeValues'); + } + + /** + * Overrides parent implementation, returns PHP type from the db type. + * @return boolean derived PHP primitive type from the column db type. + */ + public function getPHPType() + { + switch(strtolower($this->getDbType())) + { + case 'bit': case 'bit varying': case 'real': case 'serial': case 'int': case 'integer': + return 'integer'; + case 'boolean': + return 'boolean'; + case 'bigint': case 'bigserial': case 'double precision': case 'money': case 'numeric': + return 'float'; + default: + return 'string'; + } + } +} + +?> \ No newline at end of file -- cgit v1.2.3