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);
展开
 我来答
windblast
2012-04-11 · 知道合伙人软件行家
windblast
知道合伙人软件行家
采纳数:5633 获赞数:13630
毕业于空军第一航空学院电子专业,1991年开始接触电脑,从事多年计算机编程,具有较丰富的经验。

向TA提问 私信TA
展开全部
mysql_query($sqlstr) or die("无法创建数据库.");就这里就没有写入数据了

从代码上看,前面的连接数据库的代码应该正确执行了,建库的sql语句也基本正确,那么可能的原因:

你用来登录的用户,没有建立数据库的权限。
kissy_23
2012-04-15
知道答主
回答量:47
采纳率:0%
帮助的人:38.3万
展开全部
mysql_create_db
mysql是这么创建数据库的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
巨优多
2012-04-11 · TA获得超过468个赞
知道小有建树答主
回答量:570
采纳率:50%
帮助的人:354万
展开全部
你也说说有什么错误?是在哪里出错的?把出错的sql语句echo出来,放到数据库里面执行一下,看看是不是sql语法有错误
追问
mysql_query($sqlstr) or die("无法创建数据库.");就这里就没有写入数据了
追答
你在mysql_query($sqlstr) or die("无法创建数据库.");前面加上一句:
echo $sqlstr;
然后把打印出来的sql语句放到phpmyadmin里面执行一下,看看返回什么错误?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式