Files
nexusphp/nexus/Install/Update.php

48 lines
1.1 KiB
PHP
Raw Normal View History

2021-02-01 02:33:45 +08:00
<?php
namespace Nexus\Install;
class Update extends Install
{
protected $steps = ['环境检测', '添加 .env 文件', '修改&创建数据表', '导入数据'];
public function getLogFile()
{
return sprintf('%s/nexus_update_%s.log', sys_get_temp_dir(), date('Ymd'));
}
public function getUpdateDirectory()
{
return ROOT_PATH . 'public/update';
}
2021-02-01 20:19:39 +08:00
public function listTableFieldsFromCreateTable($createTableSql)
{
$arr = preg_split("/[\r\n]+/", $createTableSql);
$result = [];
foreach ($arr as $value) {
$value = trim($value);
if (substr($value, 0, 1) != '`') {
continue;
}
$pos = strpos($value, '`', 1);
$field = substr($value, 1, $pos - 1);
$result[$field] = rtrim($value, ',');
}
return $result;
}
2021-02-01 02:33:45 +08:00
2021-02-01 20:19:39 +08:00
public function listTableFieldsFromDb($table)
2021-02-01 02:33:45 +08:00
{
2021-02-01 20:19:39 +08:00
$sql = "desc $table";
$res = sql_query($sql);
2021-02-01 02:33:45 +08:00
$data = [];
2021-02-01 20:19:39 +08:00
while ($row = mysql_fetch_assoc($res)) {
$data[$row['Field']] = $row;
2021-02-01 02:33:45 +08:00
}
return $data;
}
}