
正文
php运行数据库语句 php处理数据库的常用函数
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何利用PHP执行.SQL文件
本篇文章是对使用PHP执行 SQL文件php运行数据库语句的实现代码进行php运行数据库语句了详细php运行数据库语句的分析介绍 需要的朋友参考下
demo php:
复制代码 代码如下: ?php /** * 读取 sql 文件并写入数据库 * @version demo php */ 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 = $menter = 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($menter as $er) { if(eregi("^(" $er ")" trim($subSentence))) { $isComment = true; break; } } //如果不是注释 则认为是sql语句 if(!$isComment) $newStatement[] = $subSentence; } } $statement = $newStatement; } //对表名加前缀 if( != $prefix) { //只有表名在第一行出现时才有效 例如 CREATE TABLE talbeName $regxTable = "^[/`/ /"]{ }[/_a zA Z]+[/_a zA Z ]*[/`/ /"]{ }$";//处理表名的正则表达式 $regxLeftWall = "^[/`/ /"]{ }"; $sqlFlagTree = array( "CREATE" = array( "TABLE" = array( "$regxTable" = ) ) "INSERT" = array( "INTO" = array( "$regxTable" = ) ) ); foreach($segment as $statement) { $tokens = split(" " $statement[ ]); $tableName = array(); $this findTableName($sqlFlagTree $tokens $tableName); if(empty($tableName[ leftWall ])) { $newTableName = $prefix $tableName[ name ]; } else{ $newTableName = $tableName[ leftWall ] $prefix substr($tableName[ name ] ); } $statement[ ] = str_replace($tableName[ name ] $newTableName $statement[ ]); } } //组合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= $tableName = array()) { $regxLeftWall = "^[/`/ /"]{ }"; if(count($tokens)=$tokensKey) return false; if( == trim($tokens[$tokensKey])) { return self::findTableName($sqlFlagTree $tokens $tokensKey+ $tableName); } else { foreach($sqlFlagTree as $flag = $v) { if(eregi($flag $tokens[$tokensKey])) { if( ==$v) { $tableName[ name ] = $tokens[$tokensKey]; if(eregi($regxLeftWall $tableName[ name ])) { $tableName[ leftWall ] = $tableName[ name ]{ }; } return true; } else{ return self::findTableName($v $tokens $tokensKey+ $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 w f test ); $dbM createFromFile( data sql null fff_ ); ? lishixinzhi/Article/program/PHP/201311/21281
相关问答
Q1: phpstorm怎么运行sql文件
第一步:
选择需要连接的数据库
输入数据库地址、用户名、密码等,保存
这里就是展示的数据库里的信息,包括所有的表等等
双击右边的表名可以查询表里的所有数据,左边也可以编写SQL语句
把你需要运行的sql 文件在phpstorm里面打开,
点击右键选择运行的sql文件
选择连接的数据库,然后确定
或者直接点击运行按钮
OK 啦
Q2: php中执行mysql语句?
不可以!如果你的表有5个字段 而你是只要插入两个字段!其他不要插的的要用default(默认)代替!
Q3: php中插入MySQL数据库的语句怎么写
显示数据库或表:
showdatabases;//然后可以usedatabase_name;
showtables;
更改表名:
altertabletable_namerenamenew_t;
添加列:
altertabletable_nameaddcolumnc_ncolumnattributes;
删除列:
altertabletable_namedropcolumnc_n;
创建索引:
altertablec_tableaddindex(c_n1,c_n2);
altertablec_tableadduniqueindex_name(c_n);
altertablec_tableaddprimarykey(sid);
删除索引:
altertablec_tabledropindexc_n1;
更改列信息:
alter tablet_tablechangec_1c_1varchar(200);
altertablet_tablemodify1c_1varchar(200);
insert插入语句:
insertintotable_name(c_1,c_2)
values('x1',1);
update语句:
update table_namesetc_1=1wherec_2=3;
删除数据库或者表:
droptabletable_name;
dropdatabasedatabase_name;//使用mysql_drop_db()可以删除的.
关于php运行数据库语句和php处理数据库的常用函数的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







