Server IP : 103.233.192.212 / Your IP : 3.148.197.73 Web Server : Apache/2 System : Linux sv1.inde.co.th 3.10.0-1160.36.2.el7.x86_64 #1 SMP Wed Jul 21 11:57:15 UTC 2021 x86_64 User : sumpatuan ( 1058) PHP Version : 5.5.38 Disable Function : symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,putenv,passthru,escapeshellarg,escapeshellcmd,pcntl_exec,proc_get_status,proc_nice,proc_terminate,pclose,ini_alter,virtual,openlog,ini_restore MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /home/sumpatuan/public_html/backup/framework/db/schema/mysql/ |
Upload File : |
<?php /** * CMysqlColumnSchema class file. * * @author Qiang Xue <qiang.xue@gmail.com> * @link http://www.yiiframework.com/ * @copyright 2008-2013 Yii Software LLC * @license http://www.yiiframework.com/license/ */ /** * CMysqlColumnSchema class describes the column meta data of a MySQL table. * * @author Qiang Xue <qiang.xue@gmail.com> * @package system.db.schema.mysql * @since 1.0 */ class CMysqlColumnSchema extends CDbColumnSchema { /** * Extracts the PHP type from DB type. * @param string $dbType DB type */ protected function extractType($dbType) { if(strncmp($dbType,'enum',4)===0) $this->type='string'; elseif(strpos($dbType,'float')!==false || strpos($dbType,'double')!==false) $this->type='double'; elseif(strpos($dbType,'bool')!==false) $this->type='boolean'; elseif(strpos($dbType,'int')===0 && strpos($dbType,'unsigned')===false || preg_match('/(bit|tinyint|smallint|mediumint)/',$dbType)) $this->type='integer'; else $this->type='string'; } /** * Extracts the default value for the column. * The value is typecasted to correct PHP type. * @param mixed $defaultValue the default value obtained from metadata */ protected function extractDefault($defaultValue) { if(strncmp($this->dbType,'bit',3)===0) $this->defaultValue=bindec(trim($defaultValue,'b\'')); elseif($this->dbType==='timestamp' && $defaultValue==='CURRENT_TIMESTAMP') $this->defaultValue=null; else parent::extractDefault($defaultValue); } /** * Extracts size, precision and scale information from column's DB type. * @param string $dbType the column's DB type */ protected function extractLimit($dbType) { if (strncmp($dbType, 'enum', 4)===0 && preg_match('/\(([\'"])(.*)\\1\)/',$dbType,$matches)) { // explode by (single or double) quote and comma (ENUM values may contain commas) $values = explode($matches[1].','.$matches[1], $matches[2]); $size = 0; foreach($values as $value) { if(($n=strlen($value)) > $size) $size=$n; } $this->size = $this->precision = $size; } else parent::extractLimit($dbType); } }