我正在尝试使用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)
如何解决此问题?
由于
答案 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")
);