我正在开发一个web项目,它将部署在运行i is 7.5和php 5.3.8的64位windows 2008服务器上。系统上的数据库是Microsoft SQL Server 2008 R2。我正在codeigniter 2.1.0框架上开发这个应用程序,在让它连接到sql server上我有点困惑。
我试过同时使用mssql、odbc和sqlsrv数据库驱动程序,对于每个不同的驱动程序,都遇到了三个不同的错误。
以下是我的ODBC配置:
$db['default']['hostname'] = 'SA';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'odbc';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
我在数据源下定义了sa的dns,我确信用户名和密码都是有效的,并且服务器接受混合身份验证(windows+sql身份验证)。
我正在自动加载数据库库,对于我访问的任何页面:
Unable to connect to your database server using the provided settings.
Filename: C:\inetpub\wwwroot\system\database\DB_driver.php
Line Number: 124
如果我尝试通过MSSQL连接,不管怎样,我都会得到一个空白页。
如果我尝试使用以下参数使用sqlsrv:
$db['default']['hostname'] = '127.0.0.1';
$db['default']['username'] = 'petre';
$db['default']['password'] = 'start';
$db['default']['database'] = 'petre';
$db['default']['dbdriver'] = 'sqlsrv';
即使我链接到php.in i中的sqlsrv dll文件,也会收到以下消息:
PHP Fatal error: Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\system\database\drivers\sqlsrv\sqlsrv_driver.php on line 76
我一直在阅读旧的帖子和不同的观点,但我还没有解决这个问题。
我只想为一个DB驱动寻找一个解决方案-任何能让它连接的都可以。有人对解决这个问题有什么建议吗?
最佳答案
您为sqlsrv驱动程序显示的错误表明dll从未加载。你的php_info()怎么说?
另外,是否安装了SQL Server本机访问客户端(SNAC)10?sqlsrv驱动程序需要它。