
php 无法创建数据库
//@header("content-Type:text/html;charset=utf-8");error_reporting(0);//设置样式$css=<<<DO...
//@header("content-Type: text/html; charset=utf-8");
error_reporting(0);
//设置样式
$css = <<< DOC
<style type="text/css" media="screen">
body {
background-color:#fff;
line-height:1.6;
font-size:12px;
font-family:宋体, Arial;
color:#666;
word-break:break-all;
}
</style>
DOC;
echo $css;
$servername = "localhost"; //数据库服务器地址
$dbusername = "root"; //帐号
$dbpassword = ""; //密码
//$dbname = "proj_" . $_GET['user_id']; //数据库名称,部分从url获得
$dbname = "wwwdd"; //数据库名称,部分从url获得
//$dbcharset = 'utf-8';
$sqlfile = 'dedecms.sql'; //本机导出的Sql文件
if (!is_readable($sqlfile)) {
exit('数据库文件不存在或者读取失败');
}
$fp = fopen($sqlfile, 'r');
$sql = fread($fp, 2048000);
fclose($fp);
$conn = mysql_connect($servername, $dbusername, $dbpassword); //指定数据库连接参数
if (!$conn) {
die('不能连接数据库服务器: ' . mysql_error());
}
$sqlstr = "create database " . $dbname;
mysql_query($sqlstr) or die("无法创建数据库.");
function runquery($sql) {
global $dbcharset, $db_prefix, $DB, $tablenum;
$sql = str_replace("\r", "\n", $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;
}
$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 '创建表 ' . $name . ' ... <font color="#0000EE">成功</font><br />';
mysql_query(createtable($query, $dbcharset));
$tablenum++;
} else {
mysql_query($query);
}
}
}
}
function createtable($sql, $dbcharset) {
$type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql));
$type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM';
return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql) .
(mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=$dbcharset" : " TYPE=$type");
}
mysql_select_db($dbname);
runquery($sql); //导入数据文件
mysql_close($conn); 展开
error_reporting(0);
//设置样式
$css = <<< DOC
<style type="text/css" media="screen">
body {
background-color:#fff;
line-height:1.6;
font-size:12px;
font-family:宋体, Arial;
color:#666;
word-break:break-all;
}
</style>
DOC;
echo $css;
$servername = "localhost"; //数据库服务器地址
$dbusername = "root"; //帐号
$dbpassword = ""; //密码
//$dbname = "proj_" . $_GET['user_id']; //数据库名称,部分从url获得
$dbname = "wwwdd"; //数据库名称,部分从url获得
//$dbcharset = 'utf-8';
$sqlfile = 'dedecms.sql'; //本机导出的Sql文件
if (!is_readable($sqlfile)) {
exit('数据库文件不存在或者读取失败');
}
$fp = fopen($sqlfile, 'r');
$sql = fread($fp, 2048000);
fclose($fp);
$conn = mysql_connect($servername, $dbusername, $dbpassword); //指定数据库连接参数
if (!$conn) {
die('不能连接数据库服务器: ' . mysql_error());
}
$sqlstr = "create database " . $dbname;
mysql_query($sqlstr) or die("无法创建数据库.");
function runquery($sql) {
global $dbcharset, $db_prefix, $DB, $tablenum;
$sql = str_replace("\r", "\n", $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;
}
$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 '创建表 ' . $name . ' ... <font color="#0000EE">成功</font><br />';
mysql_query(createtable($query, $dbcharset));
$tablenum++;
} else {
mysql_query($query);
}
}
}
}
function createtable($sql, $dbcharset) {
$type = strtoupper(preg_replace("/^\s*CREATE TABLE\s+.+\s+\(.+?\).*(ENGINE|TYPE)\s*=\s*([a-z]+?).*$/isU", "\\2", $sql));
$type = in_array($type, array('MYISAM', 'HEAP')) ? $type : 'MYISAM';
return preg_replace("/^\s*(CREATE TABLE\s+.+\s+\(.+?\)).*$/isU", "\\1", $sql) .
(mysql_get_server_info() > '4.1' ? " ENGINE=$type DEFAULT CHARSET=$dbcharset" : " TYPE=$type");
}
mysql_select_db($dbname);
runquery($sql); //导入数据文件
mysql_close($conn); 展开
3个回答
2012-04-11 · 知道合伙人软件行家
关注

展开全部
mysql_query($sqlstr) or die("无法创建数据库.");就这里就没有写入数据了
从代码上看,前面的连接数据库的代码应该正确执行了,建库的sql语句也基本正确,那么可能的原因:
你用来登录的用户,没有建立数据库的权限。
从代码上看,前面的连接数据库的代码应该正确执行了,建库的sql语句也基本正确,那么可能的原因:
你用来登录的用户,没有建立数据库的权限。
展开全部
mysql_create_db
mysql是这么创建数据库的
mysql是这么创建数据库的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你也说说有什么错误?是在哪里出错的?把出错的sql语句echo出来,放到数据库里面执行一下,看看是不是sql语法有错误
追问
mysql_query($sqlstr) or die("无法创建数据库.");就这里就没有写入数据了
追答
你在mysql_query($sqlstr) or die("无法创建数据库.");前面加上一句:
echo $sqlstr;
然后把打印出来的sql语句放到phpmyadmin里面执行一下,看看返回什么错误?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询