function getcolumn($creatsql) { $creatsql = preg_replace("/ COMMENT '.*?'/i", '', $creatsql); preg_match("/\\((.+)\\)\\s*(ENGINE|TYPE)\\s*\\=/is", $creatsql, $matchs); $cols = explode("\n", $matchs[1]); $newcols = array(); foreach ($cols as $value) { $value = trim($value); if (empty($value)) { continue; } $value = remakesql($value); if (substr($value, -1) == ',') { $value = substr($value, 0, -1); } $vs = explode(' ', $value); $cname = $vs[0]; if ($cname == 'KEY' || $cname == 'INDEX' || $cname == 'UNIQUE') { $name_length = strlen($cname); if ($cname == 'UNIQUE') { $name_length = $name_length + 4; } $subvalue = trim(substr($value, $name_length)); $subvs = explode(' ', $subvalue); $subcname = $subvs[0]; $newcols[$cname][$subcname] = trim(substr($value, $name_length + 2 + strlen($subcname))); } elseif ($cname == 'PRIMARY') { $newcols[$cname] = trim(substr($value, 11)); } else { $newcols[$cname] = trim(substr($value, strlen($cname))); } } return $newcols; }
function getcolumn($creatsql) { preg_match("/\\((.+)\\)/is", $creatsql, $matchs); $cols = explode("\n", $matchs[1]); $newcols = array(); foreach ($cols as $value) { $value = trim($value); if (empty($value)) { continue; } $value = remakesql($value); //特使字符替换 if (substr($value, -1) == ',') { $value = substr($value, 0, -1); } //去掉末尾逗号 $vs = explode(' ', $value); $cname = $vs[0]; if (strtoupper($cname) == 'KEY') { $subvalue = trim(substr($value, 3)); $subvs = explode(' ', $subvalue); $subcname = $subvs[0]; $newcols['KEY'][$subcname] = trim(substr($value, 5 + strlen($subcname))); } elseif (strtoupper($cname) == 'INDEX') { $subvalue = trim(substr($value, 5)); $subvs = explode(' ', $subvalue); $subcname = $subvs[0]; $newcols['KEY'][$subcname] = trim(substr($value, 7 + strlen($subcname))); } elseif (strtoupper($cname) == 'PRIMARY') { $newcols['PRIMARY'] = trim(substr($value, 11)); } else { $newcols[$cname] = trim(substr($value, strlen($cname))); } } return $newcols; }