使用FreeTDS进行无脂肪数据库连接

时间:2015-04-16 18:54:38

标签: sql-server database connection

我正在使用Fatfree Framework并尝试使用FreeTDS连接到MSSQL-Server。 FreeTDS已经被另一个网站使用,因此连接FreeTDS / MSSQL正常工作。

请有人帮我使用fatfree进行DB-Connection吗?

这是来自工作页面的信息(FreeTDS-Parameters odbc.ini):

define('SQL_DATABASE', 'TEST_DB');
define('SQL_HOST', 'TEST_HOST');
define('SQL_USER', 'TEST_USER');
define('SQL_PASSWORD', 'TEST_PASS');

连接字符串应该如何看待freetds?

$db = new DB\SQL('dblib:SERVERNAME='.SQL_HOST.';Database='.SQL_DATABASE,SQL_USER,SQL_PASSWORD);

返回错误:找不到驱动程序

freetds.conf

[global]
dump file = /tmp/freetds.log
debug level = 10

[TEST_HOST]
host = XXX.XXX.XXX.XXX
port = 1433
tds version = 8.0
client charset = ISO-8859-1

我启用了FreeTDS-Logging。 找不到" TEST_HOST"在日志文件中,只是工作页面中的很多内容。

看起来fatfree正在尝试连接到127.0.0.1:

dblib.c:4945:dberrhandle(0x7fa187a5e1e0)
dblib.c:4964:dbmsghandle(0x7fa187a5e330)
dblib.c:761:dbsetlname(0x7fa19b6b65f0, TEST_USER, 2)
dblib.c:761:dbsetlname(0x7fa19b6b65f0, TEST_PASS, 3)
dblib.c:761:dbsetlname(0x7fa19b6b65f0, PHP freetds, 5)
dblib.c:1146:dbopen(0x7fa19b6b65f0, 127.0.0.1, [sybase])
dblib.c:273:dblib_get_tds_ctx(void)
config.c:185:Getting connection information for [127.0.0.1].

在日志中找到了TEST_USER和TEST_DB。

2 个答案:

答案 0 :(得分:0)

你在运行什么操作系统?如果您正在使用* nix,请在DSN中的连接字符串中使用dblib:

$db = new DB\SQL('dblib:host='.SQL_HOST.';dbname='.SQL_DATABASE,SQL_USER,SQL_PASSWORD);

答案 1 :(得分:0)

解决!

正确的连接字符串是:

$db = new DB\SQL('odbc:dsn='.SQL_HOST.';database='.SQL_DATABASE,SQL_USER,SQL_PASSWORD);