Discuz的install文件核心函数(2 位领导批示)
- 2008-03-13
- 分类:PHP&MySql
- 作者:银子
- 3,132 位领导视察
可以将自己写的程序做一个install.php.
Discuz的install文件中的核心函数,相当精简..
- <?php
- require("connect.inc.php");
- $sqlfile = 'test.sql';//sql文件
- $fp = fopen($sqlfile, 'rb');
- $filesize=filesize($sqlfile);
- $sql = fread($fp, $filesize);
- fclose($fp);
- runquery($sql);
- function runquery($sql) {
- global $lang, $dbcharset, $tablepre, $db;
- $sql = str_replace("\r", "\n", str_replace(' cdb_', ' '.$tablepre, $sql));
- $ret = array();
- $num = 0;
- foreach(explode(";\n", trim($sql)) as $query) {
- $queries = explode("\n", trim($query));
- foreach($queries as $query) {
- $ret[$num] .= $query[0] == '#' || $query[0].$query[1] == '--' ? '' : $query;
- }
- $num++;
- }
- unset($sql);
- foreach($ret as $query) {
- $query = trim($query);
- if($query) {
- if(substr($query, 0, 12) == 'CREATE TABLE') {
- $name = preg_replace("/CREATE TABLE ([a-z0-9_]+) .*/is", "\\1", $query);
- echo $lang['create_table'].' '.$name.' ... <font color="#0000EE">'.$lang['succeed'].'</font><br>';
- mysql_query(createtable($query, $dbcharset));
- } else {
- mysql_query($query);
- }
- }
- }
- }
- ?>















