[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]