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

标签 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)

我该如何解决这个问题?

谢谢

最佳答案

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") 
); 

关于php - 使用 PHP PDO 对象连接 MSSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078064/

相关文章:

php - 使 PHP 回显 <a href= link>

php - 如何测试属性中是否存在方法?

php - 在 PHP 中随机播放并显示目录中的图像

php - SUM 或 SUBTRACTION 在 mysql 查询中的条件

sql - 了解条件 SQL 连接,请参阅说明

php - "Integrity constraint violation: 1062 Duplicate entry"- 但没有重复的行

c# - 我无法将数据从 c# 应用程序保存到我的 sql 数据库,没有错误

sql-server - 累计金额及百分比

mysql - 如何返回 MySQL 中最后更新记录的 ID?

php - PDO 查询未显示结果