From a0ab42d92d9e9e7674d2dccd4bdc940a2748daeb Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Mon, 11 Aug 2014 12:12:39 +0900 Subject: [PATCH] Implement modifyColumn() for MySQL --- classes/db/DBMysql.class.php | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/classes/db/DBMysql.class.php b/classes/db/DBMysql.class.php index d102385d1..1668dcb86 100644 --- a/classes/db/DBMysql.class.php +++ b/classes/db/DBMysql.class.php @@ -340,6 +340,45 @@ class DBMysql extends DB $this->_query($query); } + /** + * Modify a column + * @param string $table_name table name + * @param string $column_name column name + * @param string $type column type, default value is 'number' + * @param int $size column size + * @param string|int $default default value + * @param boolean $notnull not null status, default value is false + * @return bool + */ + function modifyColumn($table_name, $column_name, $type = 'number', $size = '', $default = '', $notnull = false) + { + $type = $this->column_type[$type]; + if(strtoupper($type) == 'INTEGER') + { + $size = ''; + } + + $query = sprintf("alter table `%s%s` modify `%s` ", $this->prefix, $table_name, $column_name); + if($size) + { + $query .= sprintf(" %s(%s) ", $type, $size); + } + else + { + $query .= sprintf(" %s ", $type); + } + if($default) + { + $query .= sprintf(" default '%s' ", $default); + } + if($notnull) + { + $query .= " not null "; + } + + return $this->_query($query) ? true : false; + } + /** * Check column exist status of the table * @param string $table_name table name