如何使用php代碼將mysql導出的*.sql , 再一次導入哦??? 我就好象在本地編寫了個小程序..然後所有的數據表在phpmyadmin裡導出成一個 *.sql文件如果要製作install文件, 應該如何在編寫哦... 一次過把所有表創建在使用者的數據庫裡..在網上找了幾天的代碼, 都找不到.. 研究過discuz的安裝文件, 但是還是有點模糊>< 求高手幫忙 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是一条条语句读出来执行我的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); discuz的install确实很nb...这个是discuz的install核心...有这个就行了<?phprequire("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); } } }}?> 不过phpmyadmin导出的...直接用phpmyadmin导入不是更省事么... 因為我想製作一個安裝文件,這也算是學習的一種哦....謝謝各位的回答哦...我逐一測試看看.. 太感謝了>< 祝各位身體健康... 兩個代碼都不行喔 ..discuz核心那個..好象缺少了什麼東西...第一個代碼. 跑到這一步就停了..if( $s=='' ¦ ¦ $s{0}=='-' ) continue; >< 是什麼原因喔.Parse error: syntax error, unexpected T_STRING in F:\web\www\mysql2.php on line 21 師兄..還是不行喔 ...手打以後 是這樣子 "|" 然後再一次運行提示:Parse error: syntax error, unexpected '|' in F:\web\www\mysql2.php on line 21我的運作環境是 繁體xp編碼是UFT8跟這個有關係嗎 看样子这个论坛的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); [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] 不会用贴代码功能,算了.看debug信息,哪里出错改哪里. debug 我也找不出該怎麼解決...請問我可以加你QQ嗎>< 謝謝你了... 我實在太需要這個代碼 呵呵,其实这个部分你可以看看phpmyadimin,它不是很好的管理mysql的工具么 ?而且刚好是用php做的,所有代码又都可以看见 php获取地址栏参数问题 关于php对象实例化,继承的消耗问题 求助!! php递归问题 招聘信息!广州亚加度电脑软件开发有限公司将大量招聘软件开发人员和管理层人员,公司提供优良的发展空间,有竞争的薪酬制度和晋升机遇 在线编辑器移到服务器上不显示问题 在PHP里,用什么方法获得SESSION里的所有变量列表? 我的PHPWIND为什么会变成乱码? 心情不好,放分。(4) 如何解决??? 网站完成,请大家帮忙看看安全问题!找出问题大分相送! 菜鸟求"属性如何两列一行地显示?"解答.
我的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);
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);
}
}
}
}
?>
第一個代碼. 跑到這一步就停了..
if( $s=='' ¦ ¦ $s{0}=='-' ) continue; ><
是什麼原因喔.
Parse error: syntax error, unexpected T_STRING in F:\web\www\mysql2.php on line 21
$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);
$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]
看debug信息,哪里出错改哪里.
而且刚好是用php做的,所有代码又都可以看见