php dblib,错误:SQLSTATE[HY000] 未知主机名称(严重性 2)

2023-11-26

我使用的是 Mac 电脑 OSX 10.9。 Freetds 和 unixODBC 已安装在我的计算机上,并作为扩展添加到 php ,尝试连接到远程 MSSQL 服务器。以下是我的连接测试:

<?php 
$dbh = new PDO('dblib:host=Hostname ;dbname=Dbname', 'user', 'pw'); 
if (!$dbh) {
    die('Something went wrong while connecting to MSSQL');
}
?>

错误日志文件显示:

[error] [client 127.0.0.1] PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[HY000] Unknown host machine name (severity 2)

可能是什么问题呢 ?如果我使用终端连接到相同的数据库,我的 freetds 和 unixODBC 似乎工作正常,如下所示:

$ isql Hostname user pw 
+---------------------------------------+
| Connected!                            |
|                                       |
| sql-statement                         |
| help [tablename]                      |
| quit                                  |
|                                       |
+---------------------------------------+
SQL> 

and

$ tsql -S Hostname  -U user
Password: 
locale is "en_US.UTF-8"
locale charset is "UTF-8"
using default charset "UTF-8"
1> 

这是我的 freetds.conf

[global]
    # TDS protocol version
    tds version = 8.0 
[Hostname]
host = IP
port = 1433
tds version = 8.0
client charset = UTF-8 ##needed on MAC OS X
dump file = /tmp/freetds.log

和我的 odbc.ini

[Hostname]
#Driver=/usr/local/lib/libtdsodbc.so
Driver = /usr/local/Cellar/freetds/0.91_2/lib/libtdsodbc.so
Trace=No
Server=IP
Port=1433
TDS_Version=8.0
client charset = UTF-8  

我的 phpinfo() 显示扩展已添加,PDO 部分中有 dblib,pdo_dblib 部分有驱动程序 Flavor 启用了 freetds。

那么问题出在哪里呢?知道我应该做什么吗? 任何帮助将不胜感激。

这是我的 odbcinst.ini:

[freetdS]
Description = v0.63 with protocol v8.0 
Driver = /usr/local/Cellar/freetds/0.91_2/lib/libtdsodbc.so

我实际上通过删除 php 扩展文件夹中的 mssql.so、pdo_dblib.so 来解决这个问题,重新下载 php5.4 、 phpize 并再次构建这两个 .so 文件并将其放回去。然后就可以了。

看来我制作的旧 pdo_dblib.so 文件指向其他地方的不同 freetds.conf 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php dblib,错误:SQLSTATE[HY000] 未知主机名称(严重性 2) 的相关文章

  • 将 XML 文件读取到已存在的数据库表中

    我正在尝试将 XML 文件读入已存在的数据库表中 问题是 XML 标签和数据库列的名称不同 尽管它们具有相同的数据类型 因此 我想将 XML 标签 翻译 到数据库列中 以便可以输入数据库 不过我不知道该怎么做 这是我到目前为止所做的 sta
  • 如何完全刷新 CodeIgniter 中的页面?

    我正在叠加层中加载表单 覆盖层对于调用覆盖层的页面有一个单独的控制器和操作 在表单提交时 如果成功 我只想重新加载加载叠加层的引用页面 我可以加载引用页面 但它将内容放置在覆盖层内 header Location www example c
  • 在 eclipse pdt 中同步时 - 比较 php 文件的版本时出现空白灰色窗口

    我已经安装了适用于 64 位 Linux 的 Eclipse PDT Helios SR1 GTK Ubuntu Maverick 全新安装 我添加了用于使用 Subversion 的 Subversive 插件 并安装了 SVNKit 1
  • 连接以逗号分隔的字符串,但如果字符串为空,则逗号不应出现在开头[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题是由拼写错误或无法再重现的问题引起的 虽然类似的问题可能是on topic help on topic在这里 这个问题的解决方式不
  • PHP,检查 URL 和文件是否存在?

    我为 WordPress 创建了一个插件 需要存在两个文件才能正常运行 第一个文件定义为文件系统路径 第二个文件定义为 URL 假设第一个文件是 home my site public html some folder required f
  • 有没有办法清除所有会话中的一些会话数据?

    一般来说 我有以下场景 从数据库中获取产品及其相关数据 将获取的数据转换为 php product 对象 在会话中缓存产品对象 缓存是只读的 即客户在网站上查看产品 但也有类似的电话getProductIdsByCategory categ
  • SELECT * FROM (VALUES (x,y)) AS TableLiteral(Col1, Col2) 的名称

    以下是有效的 SQL 语法 SELECT FROM VALUES p q x y AS TableLiteral Col1 Col2 并返回表 Col1 Col2 1 p q 2 x y 此语法可以进一步用于 CTE 等 这个有名字吗 我通
  • Woocommerce 产品查询库存状态

    我使用 3 种可用性状态 有货 缺货 和 允许缺货 我想要将仅处于 库存 状态的产品导出为 XML 问题是 woocommerce 返回两种状态的值 instock 有库存 和 允许缺货 现在查询如下 query array post ty
  • Amazon EC2 上的 Apple Mac 映像? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我发现要开始苹果应用程序开发 您需要拥有某种 Mac 我想知道是否可以为此目的在 Amazon EC2 实例上加载 Mac OSx 的映像
  • Magento:查找包含产品的订单

    Magento 有没有办法找到包含给定产品的所有订单 如果可以通过管理面板来完成就更好了 报告 gt 产品 gt 订购的产品向我提供了产品销售的日期以及包含该产品的订单数量 但我需要知道哪些特定订单包含该产品 谢谢你 这个问题我在另一个问题
  • 在 PHP 页面中嵌入 svn 修订号的简单方法?

    注意到这个页面的右下角有 SVN 修订 ID 了吗 我假设这是动态的 我很乐意将其添加到我的一些网站中 就像源代码中的注释一样 以确保代码推送顺利进行 注意 您还可以假设相关站点的工作目录是相关存储库的 svn checkout Edit
  • 在订单编辑页面添加自定义元框并将其显示在客户订单页面上

    在 WooCommerce 中 想要在 WooCommerce 管理订单页面上添加自定义元框 在此框中 我只想在保存到该订单的文本字段中输入跟踪号码 然后在客户查看订单页面上 我想显示一个按钮 用于打开带有跟踪信息的模式 该模式只会拉入一个
  • PHP 字符串转日期时间(AM/PM)

    可以将格式为 A H i m d y 的字符串转换为 php 中的日期时间吗 示例字符串 AM 05 28 07 08 13 这不起作用 date DateTime createFromFormat A H i m d y AM 05 28
  • 来自外部文件的 PHP 变量?

    编辑 完成的解决方案 工作代码 所以 这是我的一个朋友帮我想出来的 这是我在 K2 items php 文件中使用的部分 div class fb comments div
  • Codeigniter:用户会话不断过期

    我正在使用 CodeIgniter 但在会话方面遇到了一个小问题 我已将 config php 中的 sess expiration 设置为 0 以便用户会话永远不会过期 但用户 甚至我自己 仍然偶尔会被踢出并要求再次登录 顺便说一句 我将
  • 删除删除线的 unicode 文本?

    我偶尔会收到用户的输入 他们正在使用那些烦人的 stikethrough 文本生成器 这破坏了我的代码 我尝试过在这里找到的一些代码 string preg replace x00 x1F x80 xFF string 它有效 但我需要它只
  • WooCommerce 添加到购物车后停止重定向

    我希望在用户单击 添加到购物车 按钮后完全删除任何重定向 实际上我没有使用产品页面 我使用一个带有产品链接的简单按钮 如下所示 add to cart 492 我的用户将单击我页面上的多个 添加到购物车 按钮 因此在单击第一个按钮后他无法重
  • ajax - 检查用户名是否存在+如果存在则返回消息

    我试图检查用户想要的用户名是否已被使用 而无需发送表单 基本上是用户名字段的模糊 我遇到了一些麻烦 有几个问题 我有我的输入字段加上js
  • 我的 sudo 命令不起作用[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我有一个 mac 10 8 2 mountain lion 当我尝试使用 sudo 命令时 我得到这个 sudo private etc sudoer
  • 散列 hash_hmac 时,Convert.ToChar(0) 散列结果与 PHP 中的 chr(0) 不同的字符串

    我在 PHP 中有一个字符串 它被转换为字节数组并进行哈希处理 转换为字节数组的字符串如下所示 G 字符 0 便便 我需要 C 中的等效字节数组 这样我才能得到相同的哈希值 编辑 这是完整的问题 生成的哈希值不同 PHP api secre

随机推荐