php7 无法初始化sqlsrv
php 7 unable to initialize sqlsrv
我一整天都在搜索 php 7 VC14 x64 Thread Safe 上的 sqlsrv dll 的解决方案,但我没有找到解决方案。有没有人解决了这个问题:
[04-Oct-2015 19:48:05 UTC] PHP Warning: PHP Startup: pdo_sqlsrv: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20141001
These options need to match
in Unknown on line 0
这是我的 php7 RC4 信息:
System Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64
Build Date Sep 29 2015 17:15:28
Compiler MSVC14 (Visual C++ 2015)
Architecture x64
sqlsrv 还没有为 PHP7 做好准备,但事实并非如此,它自 2012 年以来就没有发布过。最后一次发布是从 2015 年 5 月开始的。维护者是 Microsoft,PHP7 的版本计划于明年年初。
https://github.com/Azure/msphpsql/issues/58
更新:
即使今天(2017 年 3 月)Linux,驱动程序也可用于 PHP 最高 7.1 版本。
作为记录,直接 link 到 sql 服务器库在此处
ts和nts都是32位和64位版本吗
供将来参考(在 Windows 7 和 Xampp 和 PHP 7.0.13 上测试):
在此处下载并安装 ODBC 驱动程序:https://www.microsoft.com/en-US/download/details.aspx?id=36434
在此处下载 DLL(7.0. 和 7.1.can 均可找到):https://github.com/Microsoft/msphpsql/releases
打开“php.ini”文件并查找“extension_dir “ 线。这将告诉您将 DDL 文件放在哪里。 注意:在Xampp上,它应该是这样的:“C:\xampp\php\ext”
- 将 Zip 存档中包含的 DLL 文件放入您的扩展目录中。确保 select 正确 select 正确的版本。 注意:我最初尝试使用x64版本,但是没有用。然后,我用x86版本替换了DLL,终于成功了。
- 返回您的 "php.ini" 文件,您需要添加以下行:“extension = php_pdo_sqlsrv_7_ts.dll”。 注意:Xampp使用胎面安全版本。
- 确保重新启动您的 apache 服务。
用于测试的代码示例:
$db = "the name of your database"
$password = "password";
$server = "IP address or named pipe";
$user = "username"
try {
$connection = new PDO(
"sqlsrv:Server=" . $server .
";Database=" . $db,
$password,
$user
);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
var_dump($exception);
}
我一整天都在搜索 php 7 VC14 x64 Thread Safe 上的 sqlsrv dll 的解决方案,但我没有找到解决方案。有没有人解决了这个问题:
[04-Oct-2015 19:48:05 UTC] PHP Warning: PHP Startup: pdo_sqlsrv: Unable to initialize module
Module compiled with module API=20131226
PHP compiled with module API=20141001
These options need to match
in Unknown on line 0
这是我的 php7 RC4 信息:
System Windows NT 6.0 build 6002 (Windows Server 2008 Standard Edition Service Pack 2) AMD64
Build Date Sep 29 2015 17:15:28
Compiler MSVC14 (Visual C++ 2015)
Architecture x64
sqlsrv 还没有为 PHP7 做好准备,但事实并非如此,它自 2012 年以来就没有发布过。最后一次发布是从 2015 年 5 月开始的。维护者是 Microsoft,PHP7 的版本计划于明年年初。
https://github.com/Azure/msphpsql/issues/58
更新:
即使今天(2017 年 3 月)Linux,驱动程序也可用于 PHP 最高 7.1 版本。
作为记录,直接 link 到 sql 服务器库在此处
ts和nts都是32位和64位版本吗
供将来参考(在 Windows 7 和 Xampp 和 PHP 7.0.13 上测试):
在此处下载并安装 ODBC 驱动程序:https://www.microsoft.com/en-US/download/details.aspx?id=36434
在此处下载 DLL(7.0. 和 7.1.can 均可找到):https://github.com/Microsoft/msphpsql/releases
打开“php.ini”文件并查找“extension_dir “ 线。这将告诉您将 DDL 文件放在哪里。 注意:在Xampp上,它应该是这样的:“C:\xampp\php\ext”
- 将 Zip 存档中包含的 DLL 文件放入您的扩展目录中。确保 select 正确 select 正确的版本。 注意:我最初尝试使用x64版本,但是没有用。然后,我用x86版本替换了DLL,终于成功了。
- 返回您的 "php.ini" 文件,您需要添加以下行:“extension = php_pdo_sqlsrv_7_ts.dll”。 注意:Xampp使用胎面安全版本。
- 确保重新启动您的 apache 服务。
用于测试的代码示例:
$db = "the name of your database"
$password = "password";
$server = "IP address or named pipe";
$user = "username"
try {
$connection = new PDO(
"sqlsrv:Server=" . $server .
";Database=" . $db,
$password,
$user
);
$connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $exception) {
var_dump($exception);
}