【问题标题】:SQL Server connection settings when using freetds from PHP从 PHP 使用 freetds 时的 SQL Server 连接设置
【发布时间】:2015-12-04 18:58:40
【问题描述】:

我在 FreeTDS 库的帮助下使用 PHP 从 Linux 环境连接到 SQL 服务器。并且看起来某些连接参数正在被明确关闭。具体来说,这些正在运行的过程中的某个地方:

set quoted_identifier off
set ansi_warnings off
set ansi_padding off
set ansi_nulls off
set concat_null_yields_null off

如何全局调整连接参数(PHP 级别或 FreeTDS 级别)以将上述所有设置设置为 ON,而无需以任何方式更改服务器上的任何应用程序?

编辑:

用 odbc.ini 尝试过的建议,似乎不起作用。

这是我的 freetds.conf:

[Servername]
host = hostname.example.com
port = 1433
tds version = 7.0
timeout 3600    client charset UTF-8    text size 64512

odbc.ini:

AnsiNPW = YES
QuotedID = YES

odbcinst.ini 为空

【问题讨论】:

    标签: php sql-server freetds


    【解决方案1】:

    尝试将这些设置添加到服务器 DSN 中的 odbc.ini 文件中(而不是 freetds.conf):

    [myserver]
    ... my server settings ...
    AnsiNPW = NO
    QuotedID = NO
    

    您可以在此处查看更多可以更改的设置:

    https://msdn.microsoft.com/en-us/library/ms811006.aspx

    祝你好运!

    【讨论】:

    • 适用于 Windows 环境。抱歉,我在原始帖子中没有包含此详细信息,但现在进行了调整以澄清我是从 Linux 内部连接的。
    • 其实是来自 Linux 的。 FreeTDS + unixODBC 一起工作以连接到 SQL Server。您的 odbc.ini 很可能在 /etc/odbc.ini 中。试试看?
    • 好吧,不知道。试过这个,并没有帮助。另外,文档中没有提到concat_null_yields_null,它本身就是导致问题的原因之一。
    • 您能否修改您的问题以包括 freetds.conf、odbc.ini 和 odbcinst.ini 的内容?它们通常都保存在/etc
    猜你喜欢
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 2016-04-25
    • 2012-07-09
    • 2011-03-16
    • 2019-02-09
    相关资源
    最近更新 更多