亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > PHP > 正文

如何利用PHP執行.SQL文件

2020-03-22 19:09:45
字體:
來源:轉載
供稿:網友
demo.php:
復制代碼 代碼如下:
?php
/**
* 讀取 sql 文件并寫入數據庫
* @version 1.01 demo.php
*/
html' target='_blank'>class DBManager
{
var $dbHost = '';
var $dbUser = '';
var $dbPassword = '';
var $dbSchema = '';

function __construct($host,$user,$password,$schema)
{
$this- dbHost = $host;
$this- dbUser = $user;
$this- dbPassword = $password;
$this- dbSchema = $schema;
}

function createFromFile($sqlPath,$delimiter = '(;/n)|((;/r/n))|(;/r)',$prefix = '',$commenter = array('#','--'))
{
//判斷文件是否存在
if(!file_exists($sqlPath))
return false;

$handle = fopen($sqlPath,'rb');

$sqlStr = fread($handle,filesize($sqlPath));

//通過sql語法的語句分割符進行分割
$segment = explode(";",trim($sqlStr));

//var_dump($segment);

//去掉注釋和多余的空行
foreach($segment as & $statement)
{
$sentence = explode("/n",$statement);

$newStatement = array();

foreach($sentence as $subSentence)
{
if('' != trim($subSentence))
{
//判斷是會否是注釋
$isComment = false;
foreach($commenter as $comer)
{
if(eregi("^(".$comer.")",trim($subSentence)))
{
$isComment = true;
break;
}
}
//如果不是注釋,則認為是sql語句
if(!$isComment)
$newStatement[] = $subSentence;
}
}

$statement = $newStatement;
}
//對表名加前綴
if('' != $prefix)
{


//只有表名在第一行出現時才有效 例如 CREATE TABLE talbeName

$regxTable = "^[/`/'/"]{0,1}[/_a-zA-Z]+[/_a-zA-Z0-9]*[/`/'/"]{0,1}$";//處理表名的正則表達式
$regxLeftWall = "^[/`/'/"]{1}";

$sqlFlagTree = array(
"CREATE" = array(
"TABLE" = array(
"$regxTable" = 0
)
),
"INSERT" = array(
"INTO" = array(
"$regxTable" = 0
)
)

);

foreach($segment as & $statement)
{
$tokens = split(" ",$statement[0]);

$tableName = array();
$this- findTableName($sqlFlagTree,$tokens,0,$tableName);

if(empty($tableName['leftWall']))
{
$newTableName = $prefix.$tableName['name'];
}
else{
$newTableName = $tableName['leftWall'].$prefix.substr($tableName['name'],1);
}

$statement[0] = str_replace($tableName['name'],$newTableName,$statement[0]);
}

}
//組合sql語句
foreach($segment as & $statement)
{
$newStmt = '';
foreach($statement as $sentence)
{
$newStmt = $newStmt.trim($sentence)."/n";
}

$statement = $newStmt;
}

//用于測試------------------------
//var_dump($segment);
//writeArrayToFile('data.txt',$segment);
//-------------------------------

self::saveByQuery($segment);

return true;
}

private function saveByQuery($sqlArray)
{
$conn = mysql_connect($this- dbHost,$this- dbUser,$this- dbPassword);

mysql_select_db($this- dbSchema);

foreach($sqlArray as $sql)
{
mysql_query($sql);
}
mysql_close($conn);
}

private function findTableName($sqlFlagTree,$tokens,$tokensKey=0,& $tableName = array())
{
$regxLeftWall = "^[/`/'/"]{1}";

if(count($tokens) =$tokensKey)
return false;

if('' == trim($tokens[$tokensKey]))
{
return self::findTableName($sqlFlagTree,$tokens,$tokensKey+1,$tableName);
}
else
{
foreach($sqlFlagTree as $flag = $v)
{
if(eregi($flag,$tokens[$tokensKey]))
{
if(0==$v)
{
$tableName['name'] = $tokens[$tokensKey];

if(eregi($regxLeftWall,$tableName['name']))
{
$tableName['leftWall'] = $tableName['name']{0};
}

return true;
}
else{
return self::findTableName($v,$tokens,$tokensKey+1,& $tableName);
}
}
}
}

return false;
}
}
function writeArrayToFile($fileName,$dataArray,$delimiter="/r/n")
{
$handle=fopen($fileName, "wb");

$text = '';

foreach($dataArray as $data)
{
$text = $text.$data.$delimiter;
}
fwrite($handle,$text);
}
//測試
$dbM = new DBManager('localhost','w01f','123456','test');
$dbM- createFromFile('data.sql',null,'fff_');
?

data.sql:
-- phpMyAdmin SQL Dump
-- version 2.11.3
-- http://www.phpmyadmin.net
--
-- 主機: localhost
-- 生成日期: 2008 年 08 月 20 日 12:09
-- 服務器版本: 5.0.51
-- PHP 版本: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 數據庫: `newysh`
--
-- --------------------------------------------------------
--
-- 表的結構 `allowed`
--
CREATE TABLE `allowed` (
`bhash` blob NOT NULL,
`bname` varchar(255) character set utf8 NOT NULL,
PRIMARY KEY (`bhash`(20))
) ENGINE=MyISAM DEFAULT CHARSET=gb2312 ROW_FORMAT=DYNAMIC;
--
-- 導出表中的數據 `allowed`
--
-- --------------------------------------------------------
--
-- 表的結構 `allowed_ex`
--
CREATE TABLE `allowed_ex` (
`bhash` blob NOT NULL,

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91成人在线视频| 亚洲天堂久久av| 欧美日韩午夜剧场| 青青草精品毛片| 狠狠干狠狠久久| 久久久精品国产| 欧美黑人极品猛少妇色xxxxx| 久久久久免费视频| 国产精品免费视频xxxx| 狠狠久久五月精品中文字幕| 日韩欧美在线视频观看| 性色av香蕉一区二区| 成人黄在线观看| 日韩最新免费不卡| 在线不卡国产精品| 国产成人精品电影| 国产精品免费福利| 国产不卡一区二区在线播放| 亚洲精品www久久久| 久久久久这里只有精品| 国产精品普通话| 亚州欧美日韩中文视频| 国产精品美女久久久久久免费| 国产精品久久久久免费a∨| 欧美日韩免费区域视频在线观看| 国产日韩在线观看av| 日本不卡高字幕在线2019| 日韩精品极品毛片系列视频| 国产亚洲欧洲高清一区| 日韩毛片在线看| 亚洲欧美制服综合另类| 国产成人综合av| 亚洲缚视频在线观看| 最近2019中文字幕mv免费看| 午夜精品久久久久久久99热| 91精品久久久久久久久不口人| 九色精品美女在线| 日韩黄色高清视频| 亚洲精品国产拍免费91在线| 欧美床上激情在线观看| 热99久久精品| 中文字幕av日韩| 亚洲人在线观看| 国产精品成人v| 久久久精品在线| www.午夜精品| 国产精品久久久久久久久男| 日韩中文字幕视频| 欧美日韩在线视频一区二区| 亚洲永久免费观看| 欧美精品性视频| 97视频在线观看播放| 久久97精品久久久久久久不卡| 91精品成人久久| 久久男人av资源网站| 欧美大成色www永久网站婷| 亚洲国产婷婷香蕉久久久久久| 精品av在线播放| 日本伊人精品一区二区三区介绍| 日本久久中文字幕| 日本中文字幕成人| 久久夜色精品国产亚洲aⅴ| 欧美尤物巨大精品爽| 欧美激情亚洲综合一区| 91综合免费在线| 精品在线欧美视频| 亚洲人午夜精品免费| 色婷婷综合久久久久| 国产精品∨欧美精品v日韩精品| 亚洲另类xxxx| 91精品国产综合久久久久久久久| 亚洲欧美日韩精品久久亚洲区| 亚洲精品999| 久久伊人免费视频| 国产精品国产三级国产aⅴ9色| 欧美亚洲另类在线| 一本大道久久加勒比香蕉| 高清欧美性猛交xxxx黑人猛交| 亚洲国产精品网站| 精品女同一区二区三区在线播放| 日韩精品视频在线播放| 久久亚洲国产精品成人av秋霞| 亚洲欧美国产日韩天堂区| 岛国视频午夜一区免费在线观看| 日韩三级成人av网| 午夜免费久久久久| 亚洲缚视频在线观看| 在线播放国产一区二区三区| 最近2019年中文视频免费在线观看| 欧美一区三区三区高中清蜜桃| 亚洲欧洲中文天堂| 欧美国产在线视频| 中文在线不卡视频| 亚洲精品自拍偷拍| 国内精品久久久久久| 国产精品第一视频| 免费av一区二区| 亚洲va国产va天堂va久久| 91精品视频在线播放| 国产精品久久久av| 欧美性受xxxx黑人猛交| 国产精品一二三视频| 亚洲第一天堂av| 日韩欧美一区二区在线| 国产精品永久免费在线| 91国在线精品国内播放| 日韩女优人人人人射在线视频| 欧美视频在线看| 国产一区欧美二区三区| 国产在线观看一区二区三区| 国产成人综合av| 国产精品欧美在线| 国产在线视频2019最新视频| 久热精品视频在线观看一区| 国产精品日韩专区| 在线观看免费高清视频97| 91午夜理伦私人影院| 国产v综合v亚洲欧美久久| 国产精品99久久久久久人| 国自在线精品视频| 久久久久久av| 欧美重口另类videos人妖| 亚洲精品在线看| 亚洲国产三级网| 久久久久久香蕉网| 欧美成人精品一区二区| 亚洲国产成人精品电影| 欧美高清视频在线观看| 国产日韩欧美在线视频观看| 日韩在线视频免费观看| 亚洲综合国产精品| 欧美高清在线观看| 久久精品99久久久久久久久| 国产精品视频区| 亚洲国产天堂久久综合| 视频在线一区二区| 国产精品永久免费视频| 欧美成年人视频网站欧美| 日韩高清电影好看的电视剧电影| 欧美xxxx14xxxxx性爽| 欧美日韩中文字幕| 国产精品亚洲美女av网站| 96精品久久久久中文字幕| 欧美大全免费观看电视剧大泉洋| 狠狠做深爱婷婷久久综合一区| 国产成人拍精品视频午夜网站| 亚洲综合视频1区| 亚洲精品国产福利| 日韩小视频在线观看| 国产欧美中文字幕| 久久久久久久亚洲精品| 亚洲最新av在线网站| 91精品国产综合久久香蕉最新版| 91精品国产色综合久久不卡98| 夜夜嗨av色一区二区不卡| 日韩中文视频免费在线观看| 91美女片黄在线观| 国产精品av在线播放| 国产精品日韩专区| 亚洲成人精品av| 欧美精品福利视频| 亚洲女人天堂成人av在线| 国产精品黄色影片导航在线观看| 久久久久久久久久久网站|