使用PHP PDO对象连接MSSQL数据库

时间:2015-03-16 13:29:26

标签: php sql-server pdo

我正在尝试使用PHP PDO对象连接MSSQL数据库服务器,如下所示:

$dsn='mssql:host=***.***.***.***;dbname=***';      
$username='***';
$passwd='***';

try{

$baglanti=new PDO($dsn,$username,$passwd);
$baglanti->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);    
$baglanti->exec("SET NAMES UTF8");
ini_set('max_execution_time', 2000000);

}catch(PDOException $e){ 

    echo $e->getMessage();
}

编码后我收到此错误:

SQLSTATE[HY000]: General error: 10007 'NAMES' is not a recognized SET option. [10007] (severity 5)

如何解决此问题?

由于

1 个答案:

答案 0 :(得分:2)

MSSQL不支持SET NAMES UTF8

尝试使用:

$pdo = new PDO('dblib:host=localhost;dbname=databasename;charset=UTF-8', 'username', 'password');

或者

$pdo = new PDO( 
    'mysql:host=hostname;dbname=defaultDbName', 
    'username', 
    'password', 
    array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8") 
);