CodeIgniter MSSQL连接

时间:2011-12-29 14:54:08

标签: php sql sql-server codeigniter odbc

我正在开发一个Web项目,该项目将部署在运行IIS 7.5和PHP 5.3.8的64位Windows 2008 Server计算机上。系统上的数据库是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;

我在数据源下定义了DNS for SA,我确信用户名和密码都有效,并且服务器接受混合身份验证(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.ini中的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

我一直在阅读旧帖和不同观点,但我还没有解决问题。

我只是在寻找单个数据库驱动程序的解决方案 - 任何能够连接它的东西都很好。有没有人对解决这个问题有任何建议?

2 个答案:

答案 0 :(得分:3)

x86 win 下载http://www.microsoft.com/en-us/download/details.aspx?id=20098以便使用:

$db['default']['dbdriver'] = 'sqlsrv';
use the php_sqlsrv_XX_ts_vcX.dll in php.ini extension

如果您的网络服务器和数据库服务器与您的应用不在同一台服务器上,请安装:

http://go.microsoft.com/fwlink/?LinkID=188400&clcid=0x409

linux 作为网络服务器:
$ db ['default'] ['dbdriver'] ='mssql';

download & install = php5-sybase + freetds
<br/>edit /usr/local/etc/freetds.conf
<br/>create pdo_dblib.so & php_mssql.so (if not allready exist on your extension dir), and apply to php.ini

sudo /etc/init.d/apache2 restart

并且不要忘记允许连接到您的数据库(mssql的默认端口是1433)

答案 1 :(得分:2)

您为SQLSRV驱动程序显示的错误意味着DLL永远不会加载。你的php_info()说什么?

此外,您是否安装了SQL Server Native Access Client(SNAC)10? SQLSRV驱动程序需要它。