在xampp中调用未定义的函数sqlsrv_connect()

时间:2015-10-24 02:11:32

标签: php codeigniter sqlsrv

当我尝试在codeigniter中连接sqlsrv服务器时,收到此错误消息。

  

在xampp中调用未定义的函数sqlsrv_connect()

以下是来自database.php的代码

$db['default'] = array(
'dsn'   => '',
'hostname' => 'MainDS\WTInfoUnit',
'username' => 'sa',
'password' => 'crafter',
'database' => 'BioStar_DoorLog',
'dbdriver' => 'sqlsrv',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => (ENVIRONMENT !== 'production'),
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => 'utf8',
'dbcollat' => 'utf8_general_ci',
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => TRUE

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:2)

为了能够使用 sqlsrv _ * 功能,您需要拥有适用于PHP的Microsoft SQL Server驱动程序。默认情况下,PHP Package中不包含SQL Server驱动程序,开发人员需要将它们添加到php安装中。

按照Microsoft指南安装PHP的SQL Server驱动程序:

https://msdn.microsoft.com/en-us/library/cc296203%28v=sql.105%29.aspx

您可以从Microsoft网站下载驱动程序:

https://www.microsoft.com/en-us/download/details.aspx?id=20098

让你在php.ini中引用正确的 php_sqlsrv_YOUR_PHP_VERSION_ts.dll

-Thanks

答案 1 :(得分:1)

  1. 找出您正在使用的PHP版本。Download 用于SQL Server的Microsoft PHP驱动程序
  2. 根据PHP的版本知道您需要哪个版本的驱动程序后,只需将该DLL文件复制到PHP安装的EXT子文件夹中即可。我想woule是c:\ php5 \ ext
  3. 编辑您的php.ini文件。它应驻留在c:\ Windows或c:\ php5文件夹中(同样基于PHP安装)。您可以从PHP Info函数输出(phpinfo())再次检查此文件的加载位置,有如下所示的行: 加载配置文件C:\ php5 \ php.ini
  4. 编辑php.ini以加载相应的文件后,重新启动Web服务器以重新加载新的php.ini
  5. 再次检查phpinfo()的输出! 重复1到4,直到在phpinfo()输出的“Registered PHP Streams”行中看到“sqlsvr”。
  6. 您的驱动程序未正确加载,并且您将看不到任何此警告(除了“调用未定义函数”的致命错误之外),直到您在phpinfo的输出中看到“sqlsvr”作为已注册PHP Streams的一部分( )。

    更多这些是一些SO链接:

    Connect sqlsrv in Xampp

    Fatal error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs

    希望这会有所帮助