
正文
php执行数据表代码 php执行数据表代码是什么
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
如何利用PHP执行.SQL文件
本篇文章是对使用PHP执行 SQL文件的实现代码进行了详细的分析介绍 需要的朋友参考下
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: PHP连接mysql数据库代码该怎么写啊
1,mysql_connect('数据库服务器','数据库用户名','数据库密码');
//连接数据库服务器。一般数据库服务器是127.0.0.1:3306,用户名是root,密码是dba。具体要看你安装mysql的设置。
2,mysql_select_db('数据库名');//选择你需要的数据库。
3,mysql_query(执行的sql增删改查语句);
4,mysql_close();//关闭数据库
以上几个函数,具体您可以去百度。代码就是这样的了。
Q2: PHP的POST方法和操作数据库的代码
$conn = @mysql_connect("", "root", "root"); //根据实际情况修改
if (!$conn) die('MYSQL.Connect.Error!');
mysql_query("SET NAMES 'UTF8'");
mysql_select_db("db", $conn);
$user = $_POST['user'];
$sms = $_POST['sms'];
$sqlstr = "insert into msg (user,sms) values ('" . $user . "','" . $sms . "')";
mysql_query($sqlstr, $conn);
临时编写,没有测试。
Q3: php中用 mysql 查询整张表数据的代码?
?php
$conn=mysql_connect('localhost','root','root') or die("连接失败").mysql_error();//连接数据库
$select=mysql_select_db('数据库名称',$conn) or die("选择失败").mysql_error();//选择数据库
$ss="set names gbk";
$aa=mysql_query($ss);//设置显示中文
$str="select * from 表名";
$recstr=mysql_query($str);//执行查询
$row=mysql_fetch_row($recstr);
while($row)
{ echo $row[0].$row[1].$row[2];
$row=mysql_fetch_row($recstr);
?
Q4: thinkphp 命令行模式执行,如何才能执行数据库的操作?
在本地创建新php执行数据表代码的Git仓库(连接别人php执行数据表代码的代码和创建自己php执行数据表代码的代码库)
mkdir andbase
cd andbase
git init
touch README.md
git add README.md
git commit -m 'hello world'
git remote add origin git@github.com:Liutos/foobar.git
将主分支修改推送到服务器
关于php执行数据表代码和php执行数据表代码是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。





