[quote]
  tp更新数据表的方法
[/quote]
[pre]
/**
 * 更新数据表
 * @param  resource $db 数据库连接资源
 * @param string $prefix
 * @author lyq <605415184@qq.com>
 */
function update_tables($db, $prefix = '') {
    //读取SQL文件
    $sql = file_get_contents(APP_PATH . 'install/data/update.sql');
    $sql = str_replace("\r", "\n", $sql);
    $sql = explode(";\n", $sql);
    //替换表前缀
    $sql = str_replace(" `tao_", " `{$prefix}", $sql);
    //开始安装
     show_msg('开始升级数据库...');
    foreach ($sql as $value) {
        $value = trim($value);
        if (empty($value)) {
            continue;
        }
        if (substr($value, 0, 12) == 'CREATE TABLE') {
            $name = preg_replace("/^CREATE TABLE `(\w+)` .*/s", "\\1", $value);
            $msg = "创建数据表{$name}";
            if (false !== $db->execute($value)) {
                 show_msg($msg . '...成功!');
            } else {
                 show_msg($msg . '...失败!', 'error');
                Session::set('error', true, 'install');
            }
        } else {
            if (substr($value, 0, 8) == 'UPDATE `') {
                $name = preg_replace("/^UPDATE `(\w+)` .*/s", "\\1", $value);
                $msg = "更新数据表{$name}";
            } else if (substr($value, 0, 11) == 'ALTER TABLE') {
                $name = preg_replace("/^ALTER TABLE `(\w+)` .*/s", "\\1", $value);
                $msg = "修改数据表{$name}";
            } else if (substr($value, 0, 11) == 'INSERT INTO') {
                $name = preg_replace("/^INSERT INTO `(\w+)` .*/s", "\\1", $value);
                $msg = "写入数据表{$name}";
            }
            if (($db->execute($value)) !== false) {
                show_msg($msg . '...成功!');
            } else {
                show_msg($msg . '...失败!', 'error');
                Session::set('error', true, 'install');
            }
        }
    }
}
[/pre]
						
						
						
						标签
													
						
							网站声明:
1.本站使用TaoLerCMS驱动,安全迅速,简单好用,深度SEO。
2.本站用户所发布内容均为用户个人行为,若有侵权请提供原内容出处,联系本站管理员删除。
3.站点原创内容转载及引用,请联系本站并引用原文链接地址,否则一切后果自行承担。
						 
						
						
														点赞  2
						
					
					
            	 
还没有内容
评论已关闭!