sql-server - 使用 FreeTDS 的 Fatfree 数据库连接

标签 sql-server database connection

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

拜托,有人可以帮助我使用 fatfree 进行 DB 连接吗?

这是从工作页面 (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 找到它。

最佳答案

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

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

关于sql-server - 使用 FreeTDS 的 Fatfree 数据库连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29683605/

相关文章:

c# - 当数据具有 NULL 值时,如何在 SQL Server 中使用 Pivot 将多行转换为具有多列的一行

mysql - 数据库层次结构 - 不同的节点表示

python - 为什么 gevent.socket 会破坏 multiprocessing.connection 的授权

c# - Linq to SQL DateTime 值是本地的 (Kind=Unspecified) - 如何使其成为 UTC?

sql - 如果用户可以按任何列进行过滤,那么索引每一列是否是个好主意?

sql - MongoDB 在 v4 之前不符合 ACID 的真正含义是什么?

php - 为类建立 PDO 连接的正确方法

java - java.nio 中的选择器一次可以选择多少个连接?

sql - 设置 SQL Server 存储过程的默认参数

java - 组织数据库(如何存储列表)