首页 > 解决方案 > 如何通过我的 ODBC for MSSQL 成功使用 PDO?

问题描述

我正在尝试连接到 SQL Server 上的数据库,但似乎无法使连接正常工作。我尝试了几种方法,下载文件,启用扩展,但它们似乎都不起作用。我已经确定 SQL Server 具有命名管道并且允许远程连接。我还确认他的密码和用户名有效:

<?php

$driver='{ODBC Driver 17 for SQL Server}';
/* $driver='{ODBC Driver 13 for SQL Server}'; */
/* $driver='{ODBC Driver 11 for SQL Server}'; */
$dsn='phpodbc11';
$hostname='host01';
$database='data01';
$username='root';
$password='pass123';

$conn = new PDO("odbc:$dns")
$conn = new PDO("dblib:host=$hostname;dbname=$database", $username,$password);
$conn = new PDO("sqlsrv:Server=$hostname;Database=$database", $username, $password);
$conn = new PDO("odbc:Driver=$driver;Server=$hostname;Database=$database", $username, $password);

?>

服务器上加载的驱动程序 已加载系统 DSN

php.ini 扩展:

我为上述每个新的 PDO 尝试得到的错误

*SQLSTATE[IM002] SQLConnect: 0 [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序

找不到驱动程序

SQLSTATE[IMSSP]:此扩展需要 Microsoft ODBC Driver for SQL Server 才能与 SQL Server 通信。访问以下 URL 以下载适用于 x86 的 SQL Server 的 ODBC 驱动程序:https ://go.microsoft.com/fwlink/?LinkId=163712

SQLSTATE[IM002] SQLDriverConnect: 0 [Microsoft][ODBC Driver Manager] 未找到数据源名称且未指定默认驱动程序*

标签: phpsql-serverodbc

解决方案


试试这个,它对我有用:
1.- 执行 PDO Drivers/Version 3_2/SQLSRV32.exe
PDO Drivers下载

First see compatibillity in [Drivers for PHP for SQL Server][2]

2.- 将此 DLL 复制到您的 WAMP 目录中

  • php_sqlsrv_56_ts.dll
  • php_pdo_sqlsrv_56_ts.dll
  • php_pdo_sqlsrv_56_nts.dll

3.- 在您的 php.ini 部分动态扩展中添加此扩展行:

extension=php_sqlsrv_56_ts.dll  
extension=php_pdo_sqlsrv_56_ts.dll  
extension=php_pdo_sqlsrv_56_nts.dll  

4.- 重新启动 apache WampServer
5.- 在您的机器上安装 ODBC 11:
ODBC

Run: ODBC/msodbcsql.msi  

6.- 查看 phpinfo.php,现在你必须是这样的:

PDO  
PDO support enabled  
PDO drivers mysql, sqlite, **sqlsrv**  

pdo_sqlsrv  
pdo_sqlsrv support  enabled  
Directive   Local Value Master Value  
pdo_sqlsrv.client_buffer_max_kb_size    10240   10240  
pdo_sqlsrv.log_severity 0   0  

sqlsrv  
sqlsrv support  enabled  
Directive   Local Value Master Value  
sqlsrv.ClientBufferMaxKBSize    10240   10240  
sqlsrv.LogSeverity  0   0  
sqlsrv.LogSubsystems    0   0  
sqlsrv.WarningsReturnAsErrors   On  On  

祝你好运


推荐阅读