解决方案 »

  1.   

    少了端口号,多百度或GOOGLE一下,百度上第一条就这个$dsn = "sqlsrv:server=localhost,1433;Database=bbb";
    try {
        $dbh = new PDO($dsn, 'sa', '123456'); //初始化一个PDO对象,就是创建了数据库连接对象$dbh  
    } catch (PDOException $e) {
        die ("Error!: " . $e->getMessage() . "<br/>");
    }
    echo '<pre>';
    print_r($dbh->query("select * from aaa where id=1")->fetchAll());
    echo '</pre>';
      

  2.   

    需要端口號的么?
    寫法不對了。<?php
    function connect($config=array()){
    $dbhost = $config['dbhost'];
    $dbname = $config['dbname'];
    $dbuser = $config['username'];
    $dbpasswd  = $config['password'];
    $pconnect = $config['pconnect'];
    $charset = isset($config['charset'])? $config['charset'] : ''; $dsn  = "mysql:host=$dbhost;dbname=$dbname;";
    try {
    $h_param = array(
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    );
    if($charset!=''){
    $h_param[PDO::MYSQL_ATTR_INIT_COMMAND] = 'SET NAMES '.$charset; #設置默認編碼
    }
    if ($pconnect){
    $h_param[PDO::ATTR_PERSISTENT] = true;
    }
    $conn = new PDO($dsn, $dbuser, $dbpasswd, $h_param);
    } catch (PDOException $e) {
    throw new ErrorException('Unable to connect to db server. Error:'.$e->getMessage(), 31);
    }
    return $conn;
    }$confg = array(
    'dbhost' => 'localhost',
    'dbname' => 'dbname',
    'username' => 'admin',
    'password' => '123456',
    'pconnect' => 0,
    'charset' => ''
    );$dbh = connect($config);
    ?>
      

  3.   

    端口号是必须的么?我看网上好多例子都没有写端口号。
    我加了端口号也试了,这回错误跟原来略有不同。错误提示:[08001][Microsoft][SQL Server Native Client 10.0]SQL Server 网络接口: 连接字符串无效 [87]。二楼的是连的mysql吧。
      

  4.   

    贴出你用 sqlser 函数时的连接代码
      

  5.   

    看錯了,原來是來呢mssql。
    看看這個能否解決http://blog.csdn.net/abandonship/article/details/7978904
      

  6.   

    你说的是sqlsrv吧?现在我的程序都是这种方式连接mssql数据库的。下面是测试代码:
    <?php
    $hostname = "192.168.10.25";
    $dbname = "test";
    $username = "web";
    $pwd = "123456";
    $connectionInfo = array("UID"=>$username, "PWD"=>$pwd, "Database"=>$dbname);
    $conn = sqlsrv_connect( $hostname, $connectionInfo);
    if( $conn == false){
        echo "sqlsrv方式连接失败.";    
    } else {
    echo "sqlsrv方式连接成功.";
    }
    ?>
      

  7.   

    结果呢?你没说如果参数无误,分立函数练级没有问题,而 pdo 连接又问题
    那就是 pdo 的问题了你的是 PHP 5.2.6,但只有 PHP 5.3.6 及以后的 PDO 可以稳定工作
      

  8.   

    结果是sqlsrv方式连接成功。
    而且使用pdo mssql 的方式也能连接成功。