7

我正在使用 sqlsrv 驱动程序连接到带有 PDO 的 MS SQL 服务器。

PHP 版本是 5.3.24。工作连接如下所示:

$dsny = "sqlsrv:Server=xx1;Database=xx2";
$usery = 'xx3';
$passwordy = 'xx4';
$dbhy = new PDO($dsny, $usery, $passwordy);

**

但我需要设置字符,然后我试试这个:

$dsny = "sqlsrv:Server=xx1;Database=xx2;charset=utf8";
$usery = 'xx3';
$passwordy = 'xx4';
$dbhy = new PDO($dsny, $usery, $passwordy);

当我添加字符集时,我收到此错误:“致命错误:未捕获的异常 'PDFException' 带有消息 'SQLSTATE [IMSSP]:在 dsn 字符串中指定了无效的关键字 'charset'”

那么是什么导致了这个错误呢?

从我读到的我需要这样做,因为我正在运行一个新的 PHP 版本。

4

1 回答 1

9

您需要在连接后应用该属性:

$dbhy->setAttribute(PDO::SQLSRV_ATTR_ENCODING, PDO::SQLSRV_ENCODING_UTF8);

请参阅:https ://msdn.microsoft.com/en-us/library/ff628157(v=sql.105).aspx

于 2015-05-06T08:04:09.357 回答