完善数据库结构更新方法
This commit is contained in:
@@ -205,14 +205,46 @@ EOT;
|
||||
$config['database'],
|
||||
$config['hostport']
|
||||
);
|
||||
if ($mysqli->connect_error) {
|
||||
if ($mysqli->connect_errno) {
|
||||
$mysqli->close();
|
||||
throw new Exception($mysqli->connect_error);
|
||||
}
|
||||
|
||||
$mysqli->autocommit(false);
|
||||
$mysqli->select_db($config['database']);
|
||||
$mysqli->query("SET NAMES utf8");
|
||||
|
||||
// 新建表字段
|
||||
$tableFields = [
|
||||
'lsky_images' => [
|
||||
'folder_id' => 'ALTER TABLE `lsky_images` ADD `folder_id` INT NOT NULL DEFAULT \'0\' COMMENT \'文件夹ID\' AFTER `user_id`;'
|
||||
]
|
||||
];
|
||||
|
||||
foreach ($tableFields as $table => $fields) {
|
||||
foreach ($fields as $field => $sql) {
|
||||
$fetchFields = $mysqli->query("DESCRIBE `{$table}`;");
|
||||
// 判断字段是否已存在
|
||||
$flag = true;
|
||||
foreach ($fetchFields as $fetchField) {
|
||||
if ($field == $fetchField['Field']) {
|
||||
$flag = false;
|
||||
}
|
||||
}
|
||||
if ($flag) {
|
||||
if (!$mysqli->query($sql)) {
|
||||
throw new Exception($mysqli->error);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!$mysqli->multi_query($file)) {
|
||||
throw new Exception('数据写入失败');
|
||||
}
|
||||
$mysqli->commit();
|
||||
$mysqli->autocommit(true);
|
||||
$mysqli->close();
|
||||
}
|
||||
$code = 1;
|
||||
$msg = '更新成功,返回<a href="/">首页</a>';
|
||||
@@ -223,6 +255,7 @@ EOT;
|
||||
}
|
||||
}
|
||||
} catch (Exception $e) {
|
||||
$mysqli->rollback();
|
||||
$code = 0;
|
||||
$msg = $e->getMessage();
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.2 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 1.4 MiB |
Binary file not shown.
|
After Width: | Height: | Size: 34 KiB |
-12
@@ -31,18 +31,6 @@ UPDATE `lsky_config` SET `value` = 'kodo' WHERE `lsky_config`.`value` = 'qiniu';
|
||||
UPDATE `lsky_config` SET `value` = 'uss' WHERE `lsky_config`.`value` = 'upyun';
|
||||
|
||||
-- v1.4.1
|
||||
DROP PROCEDURE IF EXISTS schema_change;
|
||||
DELIMITER //
|
||||
CREATE PROCEDURE schema_change() BEGIN
|
||||
DECLARE {database} VARCHAR(100);
|
||||
SELECT DATABASE() INTO {database};
|
||||
IF NOT EXISTS(SELECT 1 FROM information_schema.columns where table_schema='{database}' and table_name='lsky_images' and COLUMN_NAME='folder_id') THEN
|
||||
ALTER TABLE `lsky_images` ADD `folder_id` INT NOT NULL DEFAULT '0' COMMENT '文件夹ID' AFTER `user_id`;
|
||||
END IF;
|
||||
END//
|
||||
DELIMITER ;
|
||||
CALL schema_change();
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `lsky_folders` (
|
||||
`id` int(11) PRIMARY KEY AUTO_INCREMENT NOT NULL COMMENT 'ID',
|
||||
`user_id` int(11) NOT NULL COMMENT '用户ID',
|
||||
|
||||
Reference in New Issue
Block a user