代码如下<?php
header("content-type:textml; charset=utf-8");
$servername = 'localhost';
$username = 'root';
$password = '123456!@#$%^';
$dbname = 'db_library';

function sql_run($sqlStr){
$con = mysql_connect($servername,$username,$password);
if (!$con){
die('Could not connect: ' . mysql_error());
}

$selected = mysql_select_db($dbname,$con);
if (!$selected){
die('Could not select: ' . mysql_error());// 到这一句出错的。
}

mysql_query("set names utf8");

$run = mysql_query($sqlStr,$con);
if (!$run){
die('Could not run the sql_str: ' . $sqlStr . mysql_error());
}

mysql_close($con);
}
?>我确定这个数据库存在,账号密码没有错,而且用这个连其他已有的数据库也不行
同个服务器,其他的网站如discuz!连接没问题。应该不是数据库的问题

解决方案 »

  1.   

    不是 我在navicat里面看到也是全小写的。
      

  2.   


        $servername = 'localhost';
        $username = 'root';
        $password = '123456!@#$%^';
        $dbname = 'db_library';
    放到    
        function sql_run($sqlStr){
    里面
    即:
     function sql_run($sqlStr){
        $servername = 'localhost';
        $username = 'root';
        $password = '123456!@#$%^';
        $dbname = 'db_library';
    ...
      

  3.   

    这个错误信息不应该是mysql_select_db()报告的,可能是某一句mysql_query()报的,楼主最好在代码中加入debug信息好好调试一下。
      

  4.   

    不是这里吧,这里错的话不是应该connect就出错了?
      

  5.   

    报错是:Could not select: no database selected
    所以可以肯定是这句错了。
      

  6.   

    叨叨老大说得没错,sql_run()里面的几个变量都是局部变量,不把$servername几个变量的定义放到函数里面的话,也必须声明为global变量才行。