Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQLSRV PHP7 PDO';找不到驱动程序';错误_Php_Sql Server_Pdo - Fatal编程技术网

SQLSRV PHP7 PDO';找不到驱动程序';错误

SQLSRV PHP7 PDO';找不到驱动程序';错误,php,sql-server,pdo,Php,Sql Server,Pdo,我正在尝试设置PDO以使用XAMPP连接到MSSQL数据库,我正在运行PHP7,我花了相当多的时间穿越互联网,试图克服“未捕获的异常‘PDOException’,消息是‘找不到驱动程序’” 错误,但到目前为止我没有运气 我使用的驱动程序来自:(v4.0) 并已从以下位置安装Microsoft OCDB驱动程序13: 我安装了微软Visual C++ 2015,但我仍然有同样的错误,这就是我至今所尝试的。 我首先下载了为PHP7设计的驱动程序,然后将它们安装到: C:\xampp\php\ext

我正在尝试设置PDO以使用XAMPP连接到MSSQL数据库,我正在运行PHP7,我花了相当多的时间穿越互联网,试图克服“未捕获的异常‘PDOException’,消息是‘找不到驱动程序’” 错误,但到目前为止我没有运气

我使用的驱动程序来自:(v4.0)

并已从以下位置安装Microsoft OCDB驱动程序13:

<>我安装了微软Visual C++ 2015,但我仍然有同样的错误,这就是我至今所尝试的。

我首先下载了为PHP7设计的驱动程序,然后将它们安装到: C:\xampp\php\ext

之后,我将扩展添加到php.ini文件中,该文件位于:C:\xampp\php

extension=php\u sqlsrv\u 7\u ts\u x64.dll

扩展名=php_pdo_sqlsrv_7_ts_x64.dll

extension=php\u sqlsrv\u 7\u nts\u x64.dll

扩展名=php_pdo_sqlsrv_7_nts_x64.dll

尝试线程安全和非线程安全

我也把分机设置到正确的文件夹

<?php
       $path = php_ini_loaded_file();
       echo 'The loaded file path is :' . $path;
       echo '<br><br>';
       $loadedExt = get_loaded_extensions();
       print_r ($loadedExt);
       $db = new PDO('sqlsrv:host=********;dbname=******;charset=utf8', 'username', 'password');
       $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
?>
每次我都会遇到同样的错误,我尝试了许多不同的解决方案来解决这个问题,但似乎仍然无法解决这个问题,我对php还很陌生,所以如果您能提供任何帮助,我将不胜感激

谢谢, 杰克


编辑:如果有人能提供一些见解,我们将不胜感激。如果您提供phpinfo,sqlsrv是否会出现在扩展列表中?您看到这个问题的答案了吗?它有点老了,但值得一试扩展列表在第二个代码块中,但它没有,我似乎真的不明白为什么。@bumperbox我会详细介绍这个答案,但我花了很多时间在StackOverflow中搜索基本上它只是说尝试32位版本而不是64位。事情可能已经改变了,那是2013年。最近我遇到了另一个基于odbc的驱动程序的问题,我不得不切换回32位,因此这可能是相关的。如果您使用phpinfo,sqlsrv是否显示在扩展列表中?您看到这个问题的答案了吗?它有点老了,但值得一试扩展列表在第二个代码块中,但它没有,我似乎真的不明白为什么。@bumperbox我会详细介绍这个答案,但我花了很多时间在StackOverflow中搜索基本上它只是说尝试32位版本而不是64位。事情可能已经改变了,那是2013年。最近我遇到了另一个基于odbc的驱动程序的问题,我不得不切换回32位,所以这可能是相关的。
The loaded file path is :C:\xampp\php\php.ini

Array ( [0] => Core [1] => bcmath [2] => calendar [3] => ctype [4] => date [5] => ereg [6] => filter [7] => ftp [8] => hash [9] => iconv [10] => json [11] => mcrypt [12] => SPL [13] => odbc [14] => pcre [15] => Reflection [16] => session [17] => standard [18] => mysqlnd [19] => tokenizer [20] => zip [21] => zlib [22] => libxml [23] => dom [24] => PDO [25] => bz2 [26] => SimpleXML [27] => wddx [28] => xml [29] => xmlreader [30] => xmlwriter [31] => apache2handler [32] => openssl [33] => curl [34] => fileinfo [35] => gd [36] => gettext [37] => mbstring [38] => exif [39] => mysql [40] => mysqli [41] => pdo_mysql [42] => pdo_sqlite [43] => Phar [44] => mhash ) 
Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in C:\xampp\htdocs\BasicPDO\index.php:20 Stack trace: #0 C:\xampp\htdocs\BasicPDO\index.php(20): PDO->__construct('sqlsrv:host=col...', 'paisjd3', 'Famousrat6') #1 {main} thrown in C:\xampp\htdocs\BasicPDO\index.php on line 20