来源:http://www.php100.com/html/dujia/2015/0919/8973.html

[导读] 如何利用php自动执行 sql文件。其实很简单,就是获取sql文件中的内容,然后将每一句sql语句一次执行就行啦。

如何利用php自动执行.sql文件。其实很简单,就是获取sql文件中的内容,然后将每一句sql语句一次执行就行啦。

//读取文件内容
$_sql = file_get_contents('test.sql');
$_arr = explode(';', $_sql);
$_mysqli = new mysqli(DB_HOST,DB_USER,DB_PASS);
if (mysqli_connect_errno()) {
    exit('连接数据库出错');
//执行sql语句
foreach ($_arr as $_value) {
    $_mysqli->query($_value.';');
$_mysqli->close();
$_mysqli = null;

上面text.sql是你需要执行的sql文件,DB_HOST主机名,DB_USER用户名,DB_PASS密码!

这只是最基本的自动执行sql文件,你还可以 自定义生成数据库的名称 ,方法就是将sql文件中下面的代码删去

CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
USE 数据库名

然后在text.php中执行所有的sql语句前添加代码

$_mysqli->query("CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;");
$_mysqli->query("USE 数据库名");

将数据库名换成你需要修改的名称即可!更多的功能大家可自行探索!

php 7.0版本,其他版本请膝盖my sql i_* 几个函数名和参数 <? php header("Content-Type: text/html;charset=utf-8"); function populate_db($DBname, $DBPrefix, $ sql file , $link ) {//配置信息 global $errors; @my sql i_select_db($link,$DBname); my sql i_query($link,"SET NAMES utf8" //读取 文件 内容$_ sql = file_get_contents('test. sql ');$_arr = explode(';', $_ sql );$_my sql i = new my sql i(DB_HOST,DB_USER,DB_PASS);if (my sql i_connect_errno()) {exit('连接 数据库 出错');}// 执行 sql 语句foreach ($_arr as $_valu... header("Content-Type: text/html;charset=utf-8");function populate_db( $DBname, $DBPrefix, $ sql file ) {global $errors;@my sql _select_db($DBname);my sql _query("SET NAMES utf8");$mqr = @get_magic_quotes_ru... //http://blog.163.com/tonylee@126/blog/static/130335554201172412923695/ 先保证表的编码是UTF-8header('Content-Type: text/html; charset=UTF-8');$hostname = 'localhost';$dbname = 'aaa';$username = 'aaa';$pw = '...         //将表 导入 数据库 header("Content-type: text/html; charset=utf-8");         $_ sql = file_get_contents($file);//写自己的. sql 文件 最简单的 php 语句把 数据库 *. sql 文件 导入 数据库 $ sql =file_get_contents("text. sql ");    //把 SQL 语句以字符串读入$ sql $a=explode(";",$ sql );                       //用explode()函数把‍$ sql 字符串以“;”分割为数组 foreach($a as $b){