我就好象在本地編寫了個小程序..然後所有的數據表在phpmyadmin裡導出成一個 *.sql文件如果要製作install文件, 應該如何在編寫哦...  一次過把所有表創建在使用者的數據庫裡..在網上找了幾天的代碼, 都找不到.. 研究過discuz的安裝文件, 但是還是有點模糊><   求高手幫忙

解决方案 »

  1.   

    就是一条条语句读出来执行
    我的install数据库部分:$table_pre = 'NONAME_';
    $dbFile = 'sql/install.sql';if( !($f = fopen($dbFile,'r')) )
    {
    //show_error();
    }

    while( $s=fgets($f,10240) )
    {
    $s = trim( $s );
    if( $s=='' || $s{0}=='-' ) continue; //替换表前辍
    //if( $sql == '' ) $s = str_replace( '{TABLE_PRE}',$table_pre,$s );

    $s_sql .= $s;

    if( $s{strlen($s)-1}!=';' ) continue;

    if( !@mysql_query($s_sql) )

    //show_error();
    }
    $s_sql = '';
    }fclose($f);
      

  2.   

    discuz的install确实很nb...这个是discuz的install核心...有这个就行了<?php
    require("connect.php");
    $sqlfile = 'cpu.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);
    }
    }
    }
    }
    ?>
      

  3.   

    不过phpmyadmin导出的...直接用phpmyadmin导入不是更省事么...
      

  4.   

    因為我想製作一個安裝文件,這也算是學習的一種哦....謝謝各位的回答哦...我逐一測試看看.. 太感謝了><   祝各位身體健康...
      

  5.   

    兩個代碼都不行喔 ..discuz核心那個..好象缺少了什麼東西...
    第一個代碼. 跑到這一步就停了..
    if( $s==''  ¦ ¦ $s{0}=='-' ) continue;  ><  
    是什麼原因喔.
    Parse error: syntax error, unexpected T_STRING in F:\web\www\mysql2.php on line 21
      

  6.   

    師兄..還是不行喔 ...手打以後 是這樣子 "|" 然後再一次運行提示:Parse error: syntax error, unexpected '|' in F:\web\www\mysql2.php on line 21我的運作環境是 繁體xp編碼是UFT8跟這個有關係嗎
      

  7.   

    看样子这个论坛的ubb解析有问题,重贴一次看看$table_pre = 'NONAME_';
    $dbFile = 'sql/install.sql';if( !($f = fopen($dbFile,'r')) )
    {
    //show_error();
    }while( $s=fgets($f,10240) )
    {
    $s = trim( $s );
    if( $s=='' || $s{0}=='-' ) continue;//替换表前辍
    //if( $sql == '' ) $s = str_replace( '{TABLE_PRE}',$table_pre,$s );$s_sql .= $s;if( $s{strlen($s)-1}!=';' ) continue;if( !@mysql_query($s_sql) )

    //show_error();
    }
    $s_sql = '';
    }fclose($f);
      

  8.   

    [code]
    $table_pre = 'NONAME_';
    $dbFile = 'sql/install.sql';if( !($f = fopen($dbFile,'r')) )
    {
    //show_error();
    }while( $s=fgets($f,10240) )
    {
    $s = trim( $s );
    if( $s=='' || $s{0}=='-' ) continue;//替换表前辍
    //if( $sql == '' ) $s = str_replace( '{TABLE_PRE}',$table_pre,$s );$s_sql .= $s;if( $s{strlen($s)-1}!=';' ) continue;if( !@mysql_query($s_sql) )

    //show_error();
    }
    $s_sql = '';
    }fclose($f);
    [/code]
      

  9.   

    不会用贴代码功能,算了.
    看debug信息,哪里出错改哪里.
      

  10.   

     debug 我也找不出該怎麼解決...請問我可以加你QQ嗎><   謝謝你了... 我實在太需要這個代碼
      

  11.   

    呵呵,其实这个部分你可以看看phpmyadimin,它不是很好的管理mysql的工具么 ?
    而且刚好是用php做的,所有代码又都可以看见