解决PHP PDO读取MSSQL数据乱码问题

原创
07/12 13:50
阅读数 38

因为工作需要从一个MS SQL Server 数据库中读取数据并进行处理。由于代码库是PHP为主,所以需要通过PHP的PDO方式链接SQL数据库并读取数据。ODBC方式很容易实现,链接代码如下:

$str = odbc:Server=localhost;Database=db;
$conn = new PDO($str, $userID, $pwd);

确保php_pdo.dll, php_pdo_odbc.dll扩展加载就可以了。然后数据表里的特殊字符乱码问题无法解决。尝试启用ODBC_ATTR_ASSUME_UTF8=true, 乱码字符倒是可以正常显示了,但是大量的原本正常的字段出现乱码。一顿搜索后,有人说需要用sqlsrv驱动,于是修改代码如下:

$str = sqlsrv:Server=localhost;Database=db;
$conn = new PDO($str, $userID, $pwd);

报错

PHP Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[IMSSP]: This extension requires the Microsoft SQL Server 2012 Native Client ODBC Driver to communicate with SQL Server.

https://www.php.net/manual/zh/ref.pdo-sqlsrv.php 发现解决方案,安装相应的ODBC驱动就好啦。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部